Difference between revisions of "Spec/Threading-Architecture"
From Apache OpenOffice Wiki
m (→Dependencies: Adapted link.) |
m (→Thread-Affine) |
||
(8 intermediate revisions by one other user not shown) | |||
Line 1: | Line 1: | ||
− | Type: | + | Type: Specification State: draft |
− | State: draft | + | |
− | The OOo Threading Architecture leverages [[Spec/Threading Model|OOos]] respectively [[Uno/Spec/Threading Model|Unos | + | 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== | ||
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]]. |
− | ==[[Uno/Term/Thread Safe|Thread-Safe]]== | + | ==Exceptions== |
+ | ===[[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 (Universal Content Broker) Component - {{Uno/UDKlink|ucb|ucb}} | ||
Line 17: | Line 17: | ||
* The office connection acceptor (server) component in the desktop project. | * 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}} | + | * DDE (Dynamic Data Exchange) - {{Uno/UDKlink|svtools|util/source/svdde}} |
− | * Windows Clipboard Component - {{Uno/UDKlink|dtrans/source/win32/clipbe|gsl}} | + | * Windows Clipboard Component - {{Uno/UDKlink|dtrans/source/win32/clipbe|gsl}} |
− | * Windows Drag&Drop Component - {{Uno/UDKlink|dtrans/source/win32/dnd|gsl}} | + | * Windows Drag&Drop Component - {{Uno/UDKlink|dtrans/source/win32/dnd|gsl}} |
+ | * Windows Shell Execute Component - {{Uno/UDKlink|shell/source/win32|gsl}} | ||
==Overview== | ==Overview== | ||
Line 30: | Line 31: | ||
− | [[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