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

From Apache OpenOffice Wiki
< Uno‎ | Binary
Jump to: navigation, search
m (fixed: lists)
m (Added category: Multi-Threading .)
 
(18 intermediate revisions by the same user not shown)
Line 1: Line 1:
author[[User:Kr|Kr]] <br>
+
Type: Specification State: Evolving  Availability: URE 1.3
version: {{REVISIONID}} <br>
+
state:  draft          <br>
+
created: 01/10/2006    <br>
+
changed: 03/06/2006    <br>
+
type:    specification  <br>
+
  
== Binary UNO ==
+
The refined specification of the [[Uno/Spec/Threading-Model|abstract threading-model]] for the [[Uno/Binary|Binary Uno]] runtime.
=== Threading Model ===
+
  
;Feature
+
==Description==
: UNO Threading Model for the Binary UNO runtime.
+
Support threading type specific purpose environments.
: Support thread model specific compilation. The following new defines select the UNO threading model for 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.
+
==API==
 +
* [[Uno/Binary/Spec/Environment Stack]]
 +
* [[Uno/Binary/Spec/Cascaded Mapping]]
 +
* [[Uno/Binary/Spec/Environment Descriptor]]
 +
* [[Uno/Binary/Spec/Environment Substitution]]
  
: Associated environments are:
+
Threading-model specific environments are backed by the appropriate purpose environments.
:* <code>UNO_THREAD_SAFE  </code> => <code>"<ABI>"</code>
+
* <code>"<OBI>"       </code> is backed by the default pure [[Uno/Term/Object Binary Interface|OBI]] environment (as usual).
:* <code>UNO_THREAD_UNSAFE</code> => <code>"<ABI>:mutex"</code>
+
* <code>"<OBI>:unsafe"</code> is backed by the default [[Uno/Binary/Spec/Thread Unsafety Bridge]].
:* <code>UNO_THREAD_AFFINE</code> => <code>"<ABI>:thread"</code>
+
* <code>"<OBI>:affine"</code> is backed by the default [[Uno/Binary/Spec/Thread Affinity Bridge]].
  
: Threading model specific environments are backed by the appropriate purpose environments.
+
==Dependencies==
:* <code>"<ABI>:mutex" </code> is backed by the default mutex environment
+
* [[Uno/Binary/Spec/Environment Stack]]
:* <code>"<ABI>"      </code> is backed by the default free environment (as usual)
+
* [[Uno/Binary/Spec/Cascaded Mapping]]
:* <code>"<ABI>:thread"</code> is backed by the default thread environment
+
* [[Uno/Binary/Spec/Environment Descriptor]]
 +
* [[Uno/Binary/Spec/Environment Substitution]]
 +
* [[Uno/Binary/Spec/Thread Unsafety Bridge]]
 +
* [[Uno/Binary/Spec/Thread Affinity Bridge]]
  
: The UNO Threading Model specification for Binary UNO is the sum of the specifications for the parts, see below for details.
 
  
; Rationale
+
[[Category:Spec]]
: The current threading related code quality of OOo has proven, the 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.
+
[[Category:Uno]]
 
+
[[Category:Uno:Binary]]
; API Extensions
+
[[Category:Draft]]
:* Environment Guards
+
[[Category:Multi-Threading]]
:* Environment Aware References
+
:* Environment Stacks
+
:* Cascaded Mappings
+
:* Purpose Environments
+
 
+
; Dependencies
+
:* Environment Guards
+
:* Environment Aware References
+
:* Environment Stacks
+
:* Cascaded Mappings
+
:* Purpose Environments
+
 
+
; Compatibility Issues
+
:* Environment Guards
+
:* Environment Aware References
+
:* Environment Stacks
+
:* Cascaded Mappings
+
:* Purpose Environments
+

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