Difference between revisions of "Uno/Spec/Threading-Model"
From Apache OpenOffice Wiki
(Rephrased.) |
(Replaced Protocol Bridge with Purpose Bridge.) |
||
Line 19: | Line 19: | ||
; API: | ; API: | ||
; [[Uno/Spec/Purpose Environment | Purpose Environment]]: The different threading types are supported by using [[Uno/Spec/Purpose Environment |Purpose Environments]]. | ; [[Uno/Spec/Purpose Environment | Purpose Environment]]: The different threading types are supported by using [[Uno/Spec/Purpose Environment |Purpose Environments]]. | ||
− | ; [[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/ | + | ; [[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 | Thread Unsafety Bridge]] for [[Uno/Spec/Thread Unsafe | Thread Unsafe]] code and the | :* [[Uno/Spec/Thread Unsafety Bridge | Thread Unsafety Bridge]] for [[Uno/Spec/Thread Unsafe | Thread Unsafe]] code and the | ||
:* [[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/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. |
Revision as of 07:20, 2 May 2006
version: 9385
state: draft
type: specification
UNO Threading Model
- Feature
- The UNO Runtime provides support for implementing
- Thread Free, or
- Thread Safe, or
- Thread Unsafe, or
- Thread Affine
- Code.
- The threading type of any code can be specified appropriately. The Thread Unsafe type is the default type for any implementation.
- Rationale
- API
- Purpose Environment
- The different threading types are supported by using Purpose Environments.
- Implementation Environment
- The actual threading type can be selected in a Language Binding typical way and is backed by the appropriate Purpose Bridge. The used Purpose Bridges are the
- Thread Unsafety Bridge for Thread Unsafe code and the
- Thread Affinty Bridge for Thread Affine code. 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.
- Code may as well be declared Thread Free, so that it may be used from any other kind of code.
- 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.
- Cascaded Mapping
- Purpose environments may be passed to the Runtime for accessing cascaded mappings (
"gcc3"
=>"java:mutex:debug"
).
- Dependencies
- Compatibility Issues
- None.