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

From Apache OpenOffice Wiki
Jump to: navigation, search
m (Efforts&Tasks: Switch column order.)
(Tasks)
 
(42 intermediate revisions by the same user not shown)
Line 1: Line 1:
Status: in progress<br>
+
Type: [[Uno/Term/Effort|Effort]] Status: suspended  Owner: [[KR|Kay Ramme]]
type:  [[Uno/Term/Effort|effort]]<br>
+
  
==Cleaning up OOo Multi Threading==
+
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]].
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.
+
  
===Mission===
+
==Problem==
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.
+
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.
  
===Time Frame===
+
==Approach==
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.
+
Analyse the current state. Find and propose a solution, ideally based on [[Uno]], and implement it.
  
===Efforts&Tasks===
+
==Time Frame==
:The below list of efforts and tasks shows what needs to be done.
+
Unfortunately, this effort is currently suspended due to other topics. It hopefully gets resumed after finishing [[Efforts/Packaging|Packaging]].
:{|border="1" cellspacing="0" class="wikitable"
+
 
 +
==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;"  
| Title || State
+
! Title !! State
 
|-
 
|-
| [[Analysis/Multi Threading|Collect Status of OOo Threading]] || finished
+
| [[Analysis/Multi-Threading|Analyse OOo Multi-Threading]] || style="background:lightgreen;" | finished
 
|-
 
|-
| [[Architecture/Threading|Define Goals for OOo Threading Model/Architecture]] || finished
+
| [[Architecture/Goals for OOo Threading-Model&-Architecture]] || style="background:lightgreen;" | finished
 
|-
 
|-
| [[Spec/Threading Model|Define OOo Threading Model]] || finished
+
| Define [[Spec/Threading-Model|OOo threading-model]] || style="background:lightgreen;" | finished
 
|-
 
|-
| [[Uno/Effort/Creating the Uno Threading Framework|Implement OOo Threading Model]] || in progress
+
| Define [[Spec/Threading-Architecture|OOo threading-architecture]] || style="background:lightyellow;" |draft
 
|-
 
|-
| [[Spec/Architecture/Threading/Basic|Specify Threading Architecture]] || in progress
+
| Specify extended [[Uno/Spec/Threading-Model|Uno Threading-Model]] || style="background:lightgreen;" | finished
|-
+
| [[Effort/Implement Basic Threading Architecture|Implement Basic Threading Architecture]] || in progress
+
|-
+
| [[Effort/Remove Old Threading Constructs|Remove Old Threading Constructs]] (SolarMutex, vcl::ThreadExecutor) || open
+
|}
+
 
+
===Integration Chunks===
+
:{|border="1" cellspacing="0" class="wikitable"
+
|- style="background:#efefef;"  
+
| Title || Content || State
+
 
|-
 
|-
| Asynchronous Dialogs || [[Async_Dialogs]] || open
+
| [[Uno/Effort/Binary/Extend Threading-Model|Extend Binary Uno Threading-Model]] || style="background:lightgreen;" | finished ({{Uno/CWS|SRC680|bunoexttm}})
 
|-
 
|-
| Extended Binary UNO Threading Model ||
+
| Specify [[Uno/Binary/Spec/Threading-Architecture|Binary Uno Threading-Architecture]] || style="background:lightyellow;" | draft
* [[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 ||
+
| [[Uno/Effort/Binary/Adapt Threading-Architecture|Adapt Binary Uno Threading-Architecture]] || style="background:red;" | stalled
* [[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/Make VCL Thread-Transparent|Make VCL Thread-Transparent]] || style="background:red;" | stalled ({{Uno/CWS|SRC680|utf2}})
 
|-
 
|-
| New UNO Threading Architecture || || open
+
| [[Effort/Implement Basic Threading-Architecture|Implement OOo threading-architecture]] || style="background:red;" | stalled ({{Uno/CWS|SRC680|utf2}})
 
|-
 
|-
| New OOo Threading Architecture || [[Effort/Implement Basic Threading Architecture]] || open
+
| [[Effort/Clean Up Anachronistic Threading Constructs]] || style="background:lightblue;" |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