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

From Apache OpenOffice Wiki
< Uno‎ | Spec
Jump to: navigation, search
m
m (Added category: Multi-Threading .)
 
(18 intermediate revisions by the same user not shown)
Line 1: Line 1:
state:   draft          <br>
+
Type: Specification  State: draft Claim: optional
type:   specification <br>
+
  
== UNO Threading Model ==
+
==Feature==
 +
The [[../Runtime|Runtime]] provides dedicated support for implementing and handling
 +
* [[Uno/Term/Thread Safe|thread-safe]],
 +
* [[Uno/Term/Thread Unsafe|thread-unsafe]], and
 +
* [[Uno/Term/Thread Affine|thread-affine]]
 +
objects. The threading type of any code can be specified appropriately.
  
; Feature
+
==Rationale==
: The UNO Runtime provides support for implementing
+
The [[Analysis/Multi-Threading| analysis of multi-threading]] shows OOo deficiencies wrt to multi-threading and [[Uno/Term/Thread Safe|thread-safeness]]. The [[Architecture/Goals for OOo Threading-Model&-Architecture|goals for the OOo Threading-Model & -Architecture]] identify three thread related types of code, which ([[Uno/Term/Thread Unsafe|thread-unsafe]], [[Uno/Term/Thread Safe|thread-safe]] and [[Uno/Term/Thread Affine|thread-affine]]).
:* [[Uno/Spec/Thread Free | Thread Free]], or
+
:* [[Uno/Spec/Thread Safe | Thread Safe]], or
+
:* [[Uno/Spec/Thread Unsafe | Thread Unsafe]], or
+
:* [[Uno/Spec/Thread Affine | Thread Affine]]
+
: Code.
+
:
+
: The threading type of any code can be specified appropriately. The [[Uno/Spec/Thread Unsafe | Thread Unsafe]] type is the default type for any implementation.  
+
  
; Rationale:
+
==API==
 +
Two thread related purposes:
 +
* <code>":unsafe"</code> - for [[Uno/Term/Thread Unsafe|thread-unsafe]] code.
 +
* <code>":affine"</code> - for [[Uno/Term/Thread Affine|thread-affine]] code.
  
; API:
+
==Dependencies==
; [[Uno/Spec/Purpose Environment | Purpose Environment]]: The different threading types are supported by using [[Uno/Spec/Purpose Environment |Purpose Environments]].
+
* [[Uno/Spec/Thread Affinity Bridge]]
; [[Uno/Spec/Implementation Environment | Implementation Environment]]: The actual threading type can be selected in a [[Uno/Spec/Lanuage Binding | Language Binding]] typical way and is backed by the appropriate [[Uno/Spec/Purpose Bridge | Purpose Bridge]]. The used [[Uno/Spec/Purpose Bridge | Purpose Bridges]] are the
+
* [[Uno/Spec/Thread Unsafety Bridge]]
:* [[Uno/Spec/Thread Unsafety Bridge | Thread Unsafety Bridge]] for [[Uno/Spec/Thread Unsafe | Thread Unsafe]] code and the
+
* [[Uno/Spec/Purpose Environment]]
:* [[Uno/Spec/Thread Affinity Bridge | Thread Affinty Bridge]]  for [[Uno/Spec/Thread Affine | Thread Affine]] code. [[Uno/Spec/Thread Safe | Thread Safe]] code does not need to be backed, as this is the default for plain code, these also preserves compatibility with previous UNO versions.
+
* [[Uno/Spec/Environment Stack]]
:
+
* [[Uno/Spec/Cascaded Mapping]]
: Code may as well be declared [[Uno/Spec/Thread Free | Thread Free]], so that it may be used from any other kind of code.
+
* [[Uno/Spec/Environment Substitution]]
:
+
; [[Uno/Spec/Environment Stack | Environment Stack]]: The current (purpose) environment does not only vary with the implementation language (e.g. Java or C++), but also with the executed codes declared threading type. An API for accessing the ''current'' environment is provided.
+
:
+
; [[Uno/Spec/Cascaded Mapping|Cascaded Mapping]]: Purpose environments may be passed to the [[Uno/Spec/Runtime | Runtime]] for retrieving cascaded mappings (<code>"gcc3"</code> => <code>"java:unsafe:debug"</code>).
+
 
+
; Dependencies
+
:* [[Uno/Spec/Thread Affinity Bridge]]
+
:* [[Uno/Spec/Thread Unsafety Bridge]]
+
:* [[Uno/Spec/Purpose Environment]]
+
:* [[Uno/Spec/Environment Stack]]
+
:* [[Uno/Spec/Implementation Environment]]
+
:* [[Uno/Spec/Cascaded Mapping]]
+
:* [[Uno/Spec/Environment Substitution]]
+
  
  
 +
[[Category:Draft]]
 +
[[Category:Spec]]
 +
[[Category:Uno]]
 
[[Category:Uno:Spec]]
 
[[Category:Uno:Spec]]
 +
[[Category:Multi-Threading]]

Latest revision as of 07:08, 19 June 2007

Type: Specification State: draft Claim: optional

Feature

The Runtime provides dedicated support for implementing and handling

objects. The threading type of any code can be specified appropriately.

Rationale

The analysis of multi-threading shows OOo deficiencies wrt to multi-threading and thread-safeness. The goals for the OOo Threading-Model & -Architecture identify three thread related types of code, which (thread-unsafe, thread-safe and thread-affine).

API

Two thread related purposes:

Dependencies

Personal tools