Difference between revisions of "Spec/Threading-Architecture"

From Apache OpenOffice Wiki
Jump to: navigation, search
m (fixed links.)
 
(24 intermediate revisions by one other user not shown)
Line 1: Line 1:
version: {{REVISIONID}} <br>
+
Type: Specification State: draft
State:   draft         <br>
+
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.
  
; Feature: 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.
+
==Principles==
: 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.
+
Principles of the threading-architecture are
: <br>
+
* 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 code is specified to be [[Uno/Term/Thread Transparent|Thread Transparent]].'''
+
* all office APIs are specified to be [[Uno/Term/Thread Transparent|thread-transparent]].
: <br>
+
: The following modules are specified to be [[Uno/Term/Thread Safe|Thread Safe]]:
+
:* [http://ucb.openoffice.org/source/browse/ucb/ucb ucb]
+
:* [http://ucb.openoffice.org/source/browse/ucb/ucbhelper ucbhelper]
+
:* configmgr
+
:* [http://framework.openoffice.org/source/browse/framework/desktop ?desktop?/pkgmagr]
+
: <br>
+
: The following modules are specified to be [[Uno/Term/Thread Affine|Thread Affine]]:
+
:* [http://util.openoffice.org/source/browse/util/svtools svtools/DDE]
+
:* [http://gsl.openoffice.org/source/browse/gsl/dtrans dtrans/?clipboard?]
+
:* [http://gsl.openoffice.org/source/browse/gsl/dtrans dtrans/?Drag&Drop?]
+
: <br>
+
: Graphical overview:<br>
+
: [[Image:Spec_Architecture_Threading_Basic.jpg]]
+
  
; Rationale:
+
==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.
  
; Dependencies:
+
===[[Uno/Term/Thread Affine|Thread-Affine]]===
:* [[Uno/Effort/Creating the Uno Threading_Framework]]
+
The following modules are specified to be [[Uno/Term/Thread Affine|thread-affine]]:
:* [[Effort/Making VCL Thread Transparent]]
+
* 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

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