Difference between revisions of "Spec/Threading-Architecture"
From Apache OpenOffice Wiki
(Add some prosa.) |
m (→Thread-Affine) |
||
(28 intermediate revisions by one other user not shown) | |||
Line 1: | Line 1: | ||
− | + | Type: Specification State: draft | |
− | State: | + | |
− | + | ||
− | + | 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. | |
− | + | ==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]]. | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ==Exceptions== | |
+ | ===[[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}} | ||
+ | * 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]]=== | |
− | + | 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}} | ||
− | [[Category:Spec:Architecture:Threading]] | + | ==Overview== |
+ | [[Image:Spec_Architecture_Threading_Basic.jpg]] | ||
+ | |||
+ | ==Dependencies== | ||
+ | * [[Spec/Threading-Model]] | ||
+ | |||
+ | |||
+ | [[Category:Spec]] | ||
+ | [[Category:Architecture]] | ||
+ | [[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