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

From Apache OpenOffice Wiki
< Uno‎ | Binary
Jump to: navigation, search
m (Fixed section indentation, some wording, adapted links.)
m (Added category: Multi-Threading .)
 
(8 intermediate revisions by the same user not shown)
Line 1: Line 1:
Type: Specification  State: draft
+
Type: Specification  State: Evolving  Availability: URE 1.3
 +
 
 +
The refined specification of the [[Uno/Spec/Threading-Model|abstract threading-model]] for the [[Uno/Binary|Binary Uno]] runtime.
  
 
==Description==
 
==Description==
The refined specification of the [[Uno/Spec/Threading Model|abstract threading-model]] for the [[Uno/Binary|Binary Uno]] runtime.
+
Support threading type specific purpose environments.
  
Support threading type specific compilation via <code>#define</code>. Specify defines for the following threading types,
+
==API==
* [[Uno/Term/Thread Unsafe|thread-unsafe]],
+
* [[Uno/Binary/Spec/Environment Stack]]
* [[Uno/Term/Thread Safe|thread-safe]], and
+
* [[Uno/Binary/Spec/Cascaded Mapping]]
* [[Uno/Term/Thread Affine|thread-affine]].
+
* [[Uno/Binary/Spec/Environment Descriptor]]
 +
* [[Uno/Binary/Spec/Environment Substitution]]
  
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.
 
 
==Rationale==
 
The current threading related code quality of OOo has proven that doing proper multi threading programming is not easy. Even seemingly simple things, as thread safeness, seem to be unreachable. Therefor [[Uno]] programming must be as simple as possible in respect to multi-threading programming.
 
 
==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==
* [[Uno/Binary/Spec/Thread Unsafety Bridge]]
 
* [[Uno/Binary/Spec/Thread Affinity Bridge]]
 
* [[Uno/Binary/Spec/Implementation Environment]]
 
 
* [[Uno/Binary/Spec/Environment Stack]]
 
* [[Uno/Binary/Spec/Environment Stack]]
 
* [[Uno/Binary/Spec/Cascaded Mapping]]
 
* [[Uno/Binary/Spec/Cascaded Mapping]]
* [[Uno/Binary/Spec/Purpose Environments]]
+
* [[Uno/Binary/Spec/Environment Descriptor]]
 
* [[Uno/Binary/Spec/Environment Substitution]]
 
* [[Uno/Binary/Spec/Environment Substitution]]
 +
* [[Uno/Binary/Spec/Thread Unsafety Bridge]]
 +
* [[Uno/Binary/Spec/Thread Affinity Bridge]]
  
  
[[Category:Uno:Binary:Spec]]
+
[[Category:Spec]]
[[Category:draft]]
+
[[Category:Uno]]
 +
[[Category:Uno:Binary]]
 +
[[Category:Draft]]
 +
[[Category:Multi-Threading]]

Latest revision as of 07:07, 19 June 2007

Type: Specification State: Evolving Availability: URE 1.3

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

Description

Support threading type specific purpose environments.

API

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

Dependencies

Personal tools