Difference between revisions of "Effort/Revise OOo Multi-Threading"

From Apache OpenOffice Wiki
Jump to: navigation, search
m (Fixed link.)
(Tasks)
 
(47 intermediate revisions by the same user not shown)
Line 1: Line 1:
[mailto:Kay.Ramme@sun.com], [mailto:Kai.Sommerfeld@sun.com]
+
Type: [[Uno/Term/Effort|Effort]] Status: suspended  Owner: [[KR|Kay Ramme]]
  
Status: in progress
+
The OOo Threading Effort attempts to clean-up OOos [[Uno/Term/Threading-Model|threading-model]] (how to use threads) and to implement a [[Spec/Threading-Architecture|specified threading-architecture]] (where and when to use threads), providing an overview and documentation of the threads used in OOo. Further improvement is planned to be implemented in [[Effort/Implement Advanced Threading-Architecture|another]] effort, eventually leading to an [[Architecture/Proposal/Advanced Threading-Architecture|advanced threading-architecture]].
  
==Cleaning up OOo Multi Threading==
+
==Problem==
 +
More or less frequently people complain about OOo with respect to multi-threading. Either because it is complicated to implement a service, or that there is only few documentation, or that the [[Uno]] [http://api.openoffice.org API] is not thread safe, or that it does not scale etc.
  
More or less frequently people complain about OOo in respect to multi threading. Either because it is complicated to implement a service, or that there is only few documentation, or that the UNO API is not thread safe, or that it does not scale etc.
+
==Approach==
 +
Analyse the current state. Find and propose a solution, ideally based on [[Uno]], and implement it.
  
; Goal
+
==Time Frame==
: The OOo Threading Effort attempts to clean-up OOos threading model (how to use threads) and to implement a [[Spec/Architecture/Threading/Basic | Basic Threading]] architecture (where and when to use threads), providing an overview and documentation of the threads used in OOo. Further improvement is planned to be implemented in  [[Effort/Implementing Advanced Threading | another]] effort, eventually leading to an [[Spec/Architecture/Threading/Advanced | Advanced Threading]] architecture.
+
Unfortunately, this effort is currently suspended due to other topics. It hopefully gets resumed after finishing [[Efforts/Packaging|Packaging]].
  
; Time Frame
+
==Tasks==
: Current understanding of the topic lets us think, that the changes of OOo on behalf of the threading clean up effort are going to be integrated into some of the next updates and will probably mostly be finished until mid 2006.
+
The below list of efforts and tasks shows what needs to be done.
 
+
{|border="1" cellspacing="0" class="wikitable"
; Efforts&Tasks
+
:The below list of efforts and tasks shows what needs to be done.
+
:{|border="1" cellspacing="0" class="wikitable"
+
 
|- style="background:#efefef;"  
 
|- style="background:#efefef;"  
| State || Task
+
! Title !! State
 
|-
 
|-
| finished || [[Analysis/Multi Threading | Collect Status of OOo Threading]]
+
| [[Analysis/Multi-Threading|Analyse OOo Multi-Threading]] || style="background:lightgreen;" | finished
 
|-
 
|-
| finished || [[Architecture/Threading | Define Goals for OOo Threading Model/Architecture]]
+
| [[Architecture/Goals for OOo Threading-Model&-Architecture]] || style="background:lightgreen;" | finished
 
|-
 
|-
| in progress || [[Spec/Threading Model | Define OOo Threading Model]]
+
| Define [[Spec/Threading-Model|OOo threading-model]] || style="background:lightgreen;" | finished
 
|-
 
|-
| in progress || [[Uno/Effort/Creating the Uno Threading Framework | Implement OOo Threading Model]]
+
| Define [[Spec/Threading-Architecture|OOo threading-architecture]] || style="background:lightyellow;" |draft
 
|-
 
|-
| in progress || [[Spec/Architecture/Threading/Basic | Specify Threading Architecture]]
+
| Specify extended [[Uno/Spec/Threading-Model|Uno Threading-Model]] || style="background:lightgreen;" | finished
 
|-
 
|-
| in progress || [[Effort/Implement Basic Threading Architecture | Implement Basic Threading Architecture]]
+
| [[Uno/Effort/Binary/Extend Threading-Model|Extend Binary Uno Threading-Model]] || style="background:lightgreen;" | finished ({{Uno/CWS|SRC680|bunoexttm}})
|}
+
 
+
; Integration Chunks
+
:{|border="1" cellspacing="0" class="wikitable"
+
|- style="background:#efefef;"  
+
| Title || Content || State
+
 
|-
 
|-
| Asynchronous Dialogs || [[Async_Dialogs]] || open
+
| Specify [[Uno/Binary/Spec/Threading-Architecture|Binary Uno Threading-Architecture]] || style="background:lightyellow;" | draft
 
|-
 
|-
| Extended Binary UNO Threading Model ||
+
| [[Uno/Effort/Binary/Adapt Threading-Architecture|Adapt Binary Uno Threading-Architecture]] || style="background:red;" | stalled
* [[Uno/Effort/Binary/Thread Affinity Bridge|Binary UNO Thread Affinity Bridge]]
+
* [[Uno/Effort/Binary/Thread Unsafety Bridge|Binary UNO Thread Unsafety Bridge]]
+
* [[Uno/Effort/Binary/Purpose Environment|Binary UNO Purpose Environment]]
+
* [[Uno/Effort/Binary/Environment Stack|Binary UNO Environment Stack]]
+
* [[Uno/Effort/Binary/Cascaded Mapping|Binary UNO Cascaded Mapping]]
+
* [[Uno/Effort/Binary/Environment Substitution|Binary UNO Environment Substitution]]
+
|| open
+
 
|-
 
|-
| Extended C++ UNO Threading Model ||
+
| [[Effort/Make VCL Thread-Transparent|Make VCL Thread-Transparent]] || style="background:red;" | stalled ({{Uno/CWS|SRC680|utf2}})
* [[Uno/Effort/Cpp/Purpose Environment| C++ UNO Purpose Environment]]
+
* [[Uno/Effort/Cpp/Environment Stack|C++ UNO Environment Stack]]
+
|| open
+
 
|-
 
|-
| Thread Transparent VCL || [[Effort/Making_VCL_Thread_Transparent]] || open
+
| [[Effort/Implement Basic Threading-Architecture|Implement OOo threading-architecture]] || style="background:red;" | stalled ({{Uno/CWS|SRC680|utf2}})
 
|-
 
|-
| New UNO Threading Architecture || || open
+
| [[Effort/Clean Up Anachronistic Threading Constructs]] || style="background:lightblue;" |open
|-
+
| New OOo Threading Architecture || [[Impl/Architecture/Threading/Basic | Threading Architecture]] || open
+
 
|}
 
|}
 +
  
 
[[Category:Effort]]
 
[[Category:Effort]]
 +
[[Category:Multi-Threading]]

Latest revision as of 13:46, 7 January 2009

Type: Effort Status: suspended Owner: Kay Ramme

The OOo Threading Effort attempts to clean-up OOos threading-model (how to use threads) and to implement a specified threading-architecture (where and when to use threads), providing an overview and documentation of the threads used in OOo. Further improvement is planned to be implemented in another effort, eventually leading to an advanced threading-architecture.

Problem

More or less frequently people complain about OOo with respect to multi-threading. Either because it is complicated to implement a service, or that there is only few documentation, or that the Uno API is not thread safe, or that it does not scale etc.

Approach

Analyse the current state. Find and propose a solution, ideally based on Uno, and implement it.

Time Frame

Unfortunately, this effort is currently suspended due to other topics. It hopefully gets resumed after finishing Packaging.

Tasks

The below list of efforts and tasks shows what needs to be done.

Title State
Analyse OOo Multi-Threading finished
Architecture/Goals for OOo Threading-Model&-Architecture finished
Define OOo threading-model finished
Define OOo threading-architecture draft
Specify extended Uno Threading-Model finished
Extend Binary Uno Threading-Model finished (bunoexttm)
Specify Binary Uno Threading-Architecture draft
Adapt Binary Uno Threading-Architecture stalled
Make VCL Thread-Transparent stalled (utf2)
Implement OOo threading-architecture stalled (utf2)
Effort/Clean Up Anachronistic Threading Constructs open
Personal tools