Difference between revisions of "Spec/Threading-Architecture"
From Apache OpenOffice Wiki
(Removed "thread free".) |
m (→Thread-Affine) |
||
(12 intermediate revisions by one other user not shown) | |||
Line 1: | Line 1: | ||
− | State: | + | Type: Specification State: draft |
− | + | ||
− | + | 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 [[Spec/Threading Model|OOos]] respectively [[Uno/Spec/Threading Model|Unos]] | + | |
− | + | ==Principles== | |
− | Principles of the threading architecture are | + | 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]] | + | * 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 | + | * all office APIs are specified to be [[Uno/Term/Thread Transparent|thread-transparent]]. |
+ | ==Exceptions== | ||
===[[Uno/Term/Thread Safe|Thread-Safe]]=== | ===[[Uno/Term/Thread Safe|Thread-Safe]]=== | ||
The following modules are specified to be [[Uno/Term/Thread Safe|thread-safe]]: | The following modules are specified to be [[Uno/Term/Thread Safe|thread-safe]]: | ||
− | * | + | * UCB (Universal Content Broker) Component - {{Uno/UDKlink|ucb|ucb}} |
− | * | + | * UCB Helper Library - {{Uno/UDKlink|ucbhelper|ucb}} |
− | * configmgr | + | * 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]]: | ||
− | * | + | * DDE (Dynamic Data Exchange) - {{Uno/UDKlink|svtools|util/source/svdde}} |
− | * | + | * Windows Clipboard Component - {{Uno/UDKlink|dtrans/source/win32/clipbe|gsl}} |
− | * | + | * Windows Drag&Drop Component - {{Uno/UDKlink|dtrans/source/win32/dnd|gsl}} |
+ | * Windows Shell Execute Component - {{Uno/UDKlink|shell/source/win32|gsl}} | ||
− | + | ==Overview== | |
[[Image:Spec_Architecture_Threading_Basic.jpg]] | [[Image:Spec_Architecture_Threading_Basic.jpg]] | ||
− | + | ==Dependencies== | |
− | * [[Spec/Threading Model]] | + | * [[Spec/Threading-Model]] |
− | [[Category:Spec:Architecture]] | + | [[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
- all components, libraries and applications default to be thread-unsafe, with only a few well motivated exceptions (being thread-safe or thread-affine),
- all office APIs are specified to be thread-transparent.
Exceptions
Thread-Safe
The following modules are specified to be thread-safe:
- UCB (Universal Content Broker) Component - ucb/ucb
- UCB Helper Library - ucb/ucbhelper
- Config Manager Components - util/configmgr
- Package Manager - framework/desktop/source/pkgchk
- The office connection acceptor (server) component in the desktop project.
Thread-Affine
The following modules are specified to be thread-affine:
- DDE (Dynamic Data Exchange) - util/source/svdde/svtools
- Windows Clipboard Component - gsl/dtrans/source/win32/clipbe
- Windows Drag&Drop Component - gsl/dtrans/source/win32/dnd
- Windows Shell Execute Component - gsl/shell/source/win32