Difference between revisions of "Spec/Threading-Architecture"

From Apache OpenOffice Wiki
Jump to: navigation, search
 
(18 intermediate revisions by one other user not shown)
Line 1: Line 1:
State:   draft         <br>
+
Type: Specification State: draft
Type:    specification  <br>
+
  
==OOo Threading Architecture==
+
The OOo Threading Architecture leverages [[Spec/Threading-Model|OOos]] respectively [[Uno/Spec/Threading-Model|Unos threading-model]] to implement [[Uno/Term/Thread Aware|thread-aware]] code where necessary only.  
The OOo Threading Architecture leverages [[Uno/Spec/Threading Model|Unos Threading Model]] to only implement [[Uno/Term/Thread Safe|thread safe]] code where necessary, to achieve a Basic Threading Architecture.
+
All components, libraries and applications default to be thread unsafe, with only a few well motivated exceptions, which are specified as thread safe respectively as thread affine.
+
  
'''All office code is specified to be [[Uno/Term/Thread Transparent|Thread Transparent]].'''
+
==Principles==
 +
Principles of the threading-architecture are
 +
* all components, libraries and applications default to be [[Uno/Term/Thread Unsafe|thread-unsafe]], with only a few well motivated exceptions (being [[Uno/Term/Thread Safe|thread-safe]] or [[Uno/Term/Thread Affine|thread-affine]]),
 +
* all office APIs are specified to be [[Uno/Term/Thread Transparent|thread-transparent]].
  
===[[Uno/Term/Thread Safe|Thread Safe]]===
+
==Exceptions==
The following modules are specified to be [[Uno/Term/Thread Safe|thread safe]]:
+
===[[Uno/Term/Thread Safe|Thread-Safe]]===
* [http://ucb.openoffice.org/source/browse/ucb/ucb ucb]
+
The following modules are specified to be [[Uno/Term/Thread Safe|thread-safe]]:
* [http://ucb.openoffice.org/source/browse/ucb/ucbhelper ucbhelper]
+
* UCB (Universal Content Broker) Component - {{Uno/UDKlink|ucb|ucb}}
* configmgr
+
* UCB Helper Library - {{Uno/UDKlink|ucbhelper|ucb}}
* [http://framework.openoffice.org/source/browse/framework/desktop ?desktop?/pkgmagr]
+
* Config Manager Components - {{Uno/UDKlink|configmgr|util}}
 +
* Package Manager - {{Uno/UDKlink|desktop/source/pkgchk|framework}}
 +
* The office connection acceptor (server) component in the desktop project.
  
===[[Uno/Term/Thread Affine|Thread Affine]]===
+
===[[Uno/Term/Thread Affine|Thread-Affine]]===
The following modules are specified to be [[Uno/Term/Thread Affine|thread affine]]:
+
The following modules are specified to be [[Uno/Term/Thread Affine|thread-affine]]:
* [http://util.openoffice.org/source/browse/util/svtools svtools/DDE]
+
* DDE (Dynamic Data Exchange)    - {{Uno/UDKlink|svtools|util/source/svdde}}
* [http://gsl.openoffice.org/source/browse/gsl/dtrans dtrans/?clipboard?]
+
* Windows Clipboard Component    - {{Uno/UDKlink|dtrans/source/win32/clipbe|gsl}}
* [http://gsl.openoffice.org/source/browse/gsl/dtrans dtrans/?Drag&Drop?]
+
* Windows Drag&Drop Component    - {{Uno/UDKlink|dtrans/source/win32/dnd|gsl}}
 +
* Windows Shell Execute Component - {{Uno/UDKlink|shell/source/win32|gsl}}
  
===Threads===
+
==Overview==
* 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
+
 
+
===Graphical Overview===
+
 
[[Image:Spec_Architecture_Threading_Basic.jpg]]
 
[[Image:Spec_Architecture_Threading_Basic.jpg]]
  
===Dependencies===
+
==Dependencies==
* [[Uno/Effort/Creating the Uno Threading_Framework]]
+
* [[Spec/Threading-Model]]
* [[Effort/Making VCL Thread Transparent]]
+
  
  
[[Category:Spec:Architecture:Threading]]
+
[[Category:Spec]]
 +
[[Category:Architecture]]
 
[[Category:draft]]
 
[[Category:draft]]
 +
[[Category:Multi-Threading]]

Latest revision as of 11:28, 23 July 2008

Type: Specification State: draft

The OOo Threading Architecture leverages OOos respectively Unos threading-model to implement thread-aware code where necessary only.

Principles

Principles of the threading-architecture are

Exceptions

Thread-Safe

The following modules are specified to be thread-safe:

Thread-Affine

The following modules are specified to be thread-affine:

Overview

Spec Architecture Threading Basic.jpg

Dependencies

Personal tools