Uno/Effort/Binary/Extend Threading-Model

From Apache OpenOffice Wiki
< Uno
Revision as of 08:29, 7 March 2006 by Kr (Talk | contribs)

Jump to: navigation, search

The Advanced UNO Threading Framework Effort

[1], [2]

Status: in progress

changed: --Kr 09:04, 2 March 2006 (CET)

The UNO Threading Framework basically introduces the notion of an apartment into the UNO world. An apartment in UNO terms is a purpose environment. An environment can be seen as a dedicated part of a process, giving space for objects of the same ABI and the same purpose. An environment can only be entered and left via defined doors, being proxy objects representing objects outside respectively inside the apartment.

Purpose environments may be dedicated to MutExes or threads. In the sense, that a MutEx becomes acquired or a thread gets switched before a call enters an environment.

UNO Envs.jpg

The following specifications and features give an overview over the UNO Threading Framework. The specifications roughly depend on each other in the order listed. For example, the Threading Models specification depends on the Implementation Environments, all pieces basically creating a stack.

Meta Specifications
Title Version Changed Type
Threading Model 0.1 12/09/2005 Spec
Implementation Environments 0.0 12/09/2005 Spec
Thread Environment 0.0 12/09/2005 Spec
Mutex Environment 0.0 12/09/2005 Spec
Environment Stacks 0.1 01/20/2006 Spec
Mapping between Purpose Environments 0.0 12/09/2005 Spec
Purpose Environments 0.0 12/09/2005 Spec
Environment Substitution 0.0 12/09/2005 Spec
Identity Mapping 0.0 12/09/2005 Spec
Misc. Improvements 0.0 12/09/2005 Spec
Features for Binary UNO
Title Spec  % Changed Impl  % Changed Test  % Changed
Threading Models draft 80% 01/10/2006 UTF2 100% 03/06/2006 open 0% 12/14/2005
Implementation Environment final 100% 03/06/2006 UTF2 100% 01/24/2006
Mutex Environment draft 80% 01/17/2006 UTF2 100% 02/13/2006 UTF2 80% 01/27/2006
Thread Environment 0.1 80% 01/17/2006 UTF2 100% 01/17/2006 UTF2 80% 01/27/2006
Environment Stacks 0.7 80% 01/17/2006 UTF2 100% 02/27/2006 UTF2 100% 01/27/2006
Cascaded Mappings 0.3 100% 12/22/2005 UTF2 100% 02/01/2006 UTF2 100% 01/30/2006
Purpose Environments 0.5 100% 12/21/2005 UTF2 100% 12/21/2005 UTF2 100% 02/01/2006
Environment Substitution 0.3 80% 02/01/2006 UTF2 100% 02/01/2006 UTF2 100% 02/01/2006
Identity Mapping 0.2 100% 12/20/2005 UTF2 100% 12/16/2005 open 0% 12/14/2005
Misc. Improvements 0.1 80% 12/14/2005 UTF2 100% 12/16/2005 open 0% 12/14/2005
New Binary UNO Tools
Title Spec  % Changed Impl  % Changed Test  % Changed
Debug Environment 0.1 80% 01/23/2006 UTF2 100% 01/23/2006 UTF2 100% 01/23/2006
New Binary UNO Testers
Title Spec  % Changed Impl  % Changed Test  % Changed
Environment Stack Tester 0.1 80% 01/27/2006 UTF2 100% 02/01/2006
Mapping Tester 0.1 80% 12/22/2005 UTF2 100% 01/30/2006
Environment Tester 0.1 80% 12/22/2005 UTF2 100% 02/17/2006
Features for the Binary UNO Component Loader
Title Spec  % Changed Impl  % Changed Test  % Changed
Implementation Env. Support 0.1 80% 02/09/2006 UTF2 100% 02/09/2006 UTF2 100% 02/09/2006
Environment Stack Support 0.1 80% 02/08/2006 UTF2 100% 02/09/2006 UTF2 100% 02/09/2006
Implementation Specific Environments 0.1 100% 12/20/2005 UTF2 100% 02/08/2006 UTF2 100% 02/09/2006
Adapt to Misc. Improvements UTF2 100% 02/08/2006
Adapt to Identity Mapping UTF2 100% 02/07/2006
Remove Deprecated Stuff UTF2 100% 02/07/2006
Features for C++ UNO
Title Spec  % Changed Impl  % Changed Test  % Changed
Shield helpers draft 80% 02/28/2006 UTF2 100% 02/28/2006 UTF2 100% 02/28/2006
Environment Aware Reference 0.1 80% 01/10/2006 UTF2 100% 02/23/2006 UTF2 100% 02/03/2006
Environment Guards 0.1 80% 01/10/2006 UTF2 100% 01/11/2006 open 0% 01/10/2006
Implementation Environment 0.3 80% 02/14/2006 UTF2 100% 02/28/2006 UTF2 100% 02/17/2006
Environment Stacks 0.3 80% 02/10/2006 UTF2 100% 02/10/2006 UTF2 100% 02/10/2006
Test Helper: Object Factory 0.1 80% 01/30/2006 UTF2 100% 01/31/2006
Bridge: Purpose Env. Support UTF2 100% 01/30/2006 UTF2 100% 01/30/2006
Helper: Purpose Environment Implementation 0.2 80% 01/23/2006 UTF2 100% 02/14/2006 UTF2 100% 01/30/2006
Features for Java UNO
Title Spec  % Changed Impl  % Changed Test  % Changed
JNI Bridge: Purpose Env. Support
URP Bridge: Purpose Env. Support
Features for CLI UNO
Title Spec  % Changed Impl  % Changed Test  % Changed
Features for remote UNO
Title Spec  % Changed Impl  % Changed Test  % Changed
Purpose Env. Support

Current understanding of the topic lets us think, that the changes of OOo / UNO on behalf of the Threading Framework are going to be integrated into one of the next updates, probably early in 2006.

Personal tools