Difference between revisions of "Uno/Spec/Thread Affinity Bridge"
From Apache OpenOffice Wiki
m |
(Changed bridge name. Added link.) |
||
Line 21: | Line 21: | ||
; API | ; API | ||
− | : Bridge named <code>" | + | : Bridge named <code>"threadaffine"</code>. |
; Compatibility Issues: None. | ; Compatibility Issues: None. | ||
; Dependencies: | ; Dependencies: | ||
− | :* | + | :* [[Uno/Spec/Environment Stack]] |
[[Category:Uno:Spec]] | [[Category:Uno:Spec]] |
Revision as of 15:20, 26 April 2006
version: 9114
state: draft
type: specification
Thread Affinity Bridge
- Description
- The Thread Affine Bridge protects Thread Affine objects from being called by wrong threads. It does this by providing a dedicated thread, into which it delegates the calls prior to invocation. This dedicated thread is therefor the thread objects create any affinity to.
- Feature
- A Protocol Bridge protecting Thread Affine objects:
- -
enter
: Associates the current thread with the Environment - -
leave
: In case no objects are mapped it disassociates the current thread from the Environment, in case objects are mapped and this is the lastleave
, it blocks until no object is mapped anymore. - -
callInto
: Calls the desired method in the associated thread. - -
callOut
: Calls the desired method in the outer thread, if there is no outer thread yet, the associated thread is used.
- Rationale
- Some APIs have thread affinities in respect to particular handles they return. For example, on Win32 the window-destroy and -message functions require to be called by the same thread which actually created the window. This thread affinity is inherited when developing APIs on top of these thread affine APIs.
- In general, thread affine APIs are hard to program, especially in generic frameworks where it is not knowable before hand how long a thread lives and on whichs objects it calls.
- API
- Bridge named
"threadaffine"
.
- Compatibility Issues
- None.
- Dependencies