Effort/Implement Basic Threading-Architecture
From Apache OpenOffice Wiki
Status: in progress
Contents
Implement Basic Threading Architecture
The OOo threading is going to be well defined, many little changes need to be done to get implemented what is specified as the threading architecture.
Problem
The biggest problem is the size of the code base. It is hard to actually get an overview where thread related constructs are used. Typical usages are:
- use a mutex to protect an object,
- use a thread to do something in the background,
- use a thread to encapsularte thread affinities (e.g. in dtrans).
Some usages are more implicit:
- post a user message into the VCL event queue, to delegate the execution of a particular operation into the "main" thread,
- use the "global" mutex to do some initialization,
- use the "Solar Mutex" to protect a particular object,
- rely on VCL/Win to enter the
getMessage
loop in the main thread (DDE).
Solution
Actually grep for thread related Uno code and change it, if needed. Change the environments of all possible components to "cpp:unsafe".
Threads
- vos timer thread
- dtrans threads (clipboard and D&D)
- ucbhelper: background download thread
- ICE thread
- configuration flash thread
- Win32: affinity thread
- office acceptor thread - second process thread
- uno acceptor thread
- io - pump thread
- package manager deployment gui thread
- UNO job threads