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

From Apache OpenOffice Wiki
< Uno‎ | Spec
Jump to: navigation, search
m (API)
m (Wording.)
Line 1: Line 1:
 
Type: Specification  State: draft
 
Type: Specification  State: draft
  
==Feature==
+
Umbrella specification regarding when to use which thread related construct in [[:Category:Uno:Impl|Uno implementations]].
Concretely specify when to use which thread related construct.
+
  
==API==
+
==APIs==
* When implementing fast APIs, use threads for accessing slow APIs. Do notify about completion asynchronously.
+
* When implementing [[Uno/Term/Fast API|fast APIs]], use threads for accessing [[Uno/Term/Slow API|slow APIs]]. Do notify about completion asynchronously.
 
* Be conservative, only program thread related / [[Uno/Term/Thread Aware|aware]] where necessary.
 
* Be conservative, only program thread related / [[Uno/Term/Thread Aware|aware]] where necessary.
* Implement public APIs etc. as wide as the parameters (e.g. always return appropriate purpose objects in case of [[Uno/Term/Object Binary Interface|OBI]] specialization)
+
* Implement public libraries APIs etc. as wide as the parameters (e.g. always return appropriate purpose objects in case of [[Uno/Term/Object Binary Interface|OBI]] specialization)
 
* Implement public APIs [[Uno/Term/Thread Transparent|thread-transparent]].
 
* Implement public APIs [[Uno/Term/Thread Transparent|thread-transparent]].
 
* Only program [[Uno/Term/Thread Safe|thread-safe]], if parallelism is required (e.g. for interrupting a method call).
 
* Only program [[Uno/Term/Thread Safe|thread-safe]], if parallelism is required (e.g. for interrupting a method call).

Revision as of 08:13, 26 October 2006

Type: Specification State: draft

Umbrella specification regarding when to use which thread related construct in Uno implementations.

APIs

  • When implementing fast APIs, use threads for accessing slow APIs. Do notify about completion asynchronously.
  • Be conservative, only program thread related / aware where necessary.
  • Implement public libraries APIs etc. as wide as the parameters (e.g. always return appropriate purpose objects in case of OBI specialization)
  • Implement public APIs thread-transparent.
  • Only program thread-safe, if parallelism is required (e.g. for interrupting a method call).
  • Encapsulate thread-affinity.
  • Enable concurrent access to inter-thread objects (avoiding bottlenecks).

Dependencies

Personal tools