Difference between revisions of "Uno/Binary/Spec/Threading-Model"

From Apache OpenOffice Wiki
< Uno‎ | Binary
Jump to: navigation, search
(Moved "rationale" to Spec/Threading-Model.)
m (Removed outdated constructs.)
Line 1: Line 1:
 
Type: Specification  State: draft
 
Type: Specification  State: draft
  
==Description==
 
 
The refined specification of the [[Uno/Spec/Threading-Model|abstract threading-model]] for the [[Uno/Binary|Binary Uno]] runtime.
 
The refined specification of the [[Uno/Spec/Threading-Model|abstract threading-model]] for the [[Uno/Binary|Binary Uno]] runtime.
  
Support threading type specific compilation via <code>#define</code>. Specify defines for the following threading types,
+
==Description==
* [[Uno/Term/Thread Unsafe|thread-unsafe]],
+
Support threading type specific purpose environments.
* [[Uno/Term/Thread Safe|thread-safe]], and
+
* [[Uno/Term/Thread Affine|thread-affine]].
+
  
 
Threading-model specific environments are backed by the appropriate purpose environments.
 
Threading-model specific environments are backed by the appropriate purpose environments.
* <code>"<OBI>:unsafe" </code> is backed by the default [[Uno/Binary/Spec/Thread Unsafety Bridge]].
+
* <code>"<OBI>"       </code> is backed by the default pure [[Uno/Term/Object Binary Interface|OBI]] environment (as usual).
* <code>"<OBI>"       </code> is backed by the default thread-safe environment (as usual).
+
* <code>"<OBI>:unsafe"</code> is backed by the default [[Uno/Binary/Spec/Thread Unsafety Bridge]].
 
* <code>"<OBI>:affine"</code> is backed by the default [[Uno/Binary/Spec/Thread Affinity Bridge]].
 
* <code>"<OBI>:affine"</code> is backed by the default [[Uno/Binary/Spec/Thread Affinity Bridge]].
 
The [[Uno/Term/Threading-Model|threading-model]] specification for [[Uno/Binary|Binary Uno]] is the sum of the specifications of the parts, see below for details.
 
 
==API==
 
The following new defines select the threading type for [[Uno/Binary|Binary Uno]]:
 
* <code>UNO_THREAD_SAFE</code>
 
* <code>UNO_THREAD_UNSAFE</code>
 
* <code>UNO_THREAD_AFFINE</code>
 
 
Services / Client code compiled with one of these defines lifes in the associated environment. Not defining one of these defines, lets binary UNO fall back to <code>CPPU_THREAD_SAFE</code>, and gives a warning. This is compatible with the original behaviour.
 
 
The Associated environments are:
 
* <code>UNO_THREAD_SAFE  </code> => <code>"<OBI>"</code>
 
* <code>UNO_THREAD_UNSAFE</code> => <code>"<OBI>:unsafe"</code>
 
* <code>UNO_THREAD_AFFINE</code> => <code>"<OBI>:affine"</code>, see [[Uno/Binary/Spec/Thread Affinity Bridge]] for details.
 
  
 
==Dependencies==
 
==Dependencies==

Revision as of 15:57, 6 September 2006

Type: Specification State: draft

The refined specification of the abstract threading-model for the Binary Uno runtime.

Description

Support threading type specific purpose environments.

Threading-model specific environments are backed by the appropriate purpose environments.

Dependencies

Personal tools