Effort/Implement Basic Threading-Architecture

From Apache OpenOffice Wiki
< Effort
Revision as of 14:42, 5 July 2006 by Kr (Talk | contribs)

Jump to: navigation, search

Status: in progress

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

Components

Libraries

Applications

Tasks

Title State
Declare be thread unsafe module framework/desktop UTF2
Declare be thread unsafe module framework/sfx2 UTF2
Declare be thread unsafe module framework/filter UTF2
Declare be thread unsafe module graphics/goodies UTF2
Declare be thread unsafe module graphics/svx UTF2
Declare be thread unsafe module gsl/toolkit UTF2
Declare be thread unsafe module l10n/i18npool UTF2
Declare be thread unsafe module sw/linguistic UTF2
Declare be thread unsafe module sw/sw UTF2
Declare be thread unsafe module ucb/uui UTF2
Declare be thread unsafe module util/comphelper UTF2
Declare be thread unsafe module util/xmlhelp UTF2
Declare be thread unsafe module util/unotools UTF2
Declare be thread unsafe module util/svtools UTF2
Declare be thread unsafe module util/extensions UTF2
Declare be thread unsafe module util/fileaccess UTF2
Declare be thread unsafe module xml/xmloff UTF2
Declare be thread unsafe module xml/package UTF2
Declare be thread unsafe module xml/sax UTF2
Declare be thread unsafe module dba/connectivity UTF2
Make ZConnectionPool / OPoolTimer thread enter the default thread unsafe environment before invalidating the pooled connections. UTF2
AsyncEventNotifier / EventNotifierImpl - Already call "getComponent" at the "IEventProcessor" during construction of the "AsyncEventNotifier" and remember the object in a "free" reference utf2
Make VCL Thread Transparent in progress
Make D&D Thread Transparent open
Make Clipboard Thread Transparent open
Personal tools