occt: master 6f498847
Author | Committer | Branch | Timestamp | Parent |
---|---|---|---|---|
kgv | bugmaster | master | 2018-07-06 23:27:51 | master be3d8cbc |
Affected Issues | 0029935: Foundation Classes - introduce OSD_ThreadPool class defining a thread pool | |||
Changeset | 0029935: Foundation Classes - introduce OSD_ThreadPool class defining a thread pool New class OSD_ThreadPool has been introduced to define a Thread Pool for multi-threading algorithm. Thread Pool assigns a serial number for each thread allowing Multi-Threading algorithm to allocate thread-local storage variables as an array whose size is the same as the number of threads. OSD_ThreadPool also redirects exceptions to a thread calling parallel execution and consistently initializes FPE exception handling. New class Standard_Condition provides a platform-independent tool similar to Event in WinAPI. A new auxiliary function Standard_Atomic_CompareAndSwap() has been introduced for performing atomic compare and swap of integer number. Standard_Atomic_Increment/Standard_Atomic_Decrement fallback implementation using ASM code for x86 processors for GCC has been dropped; instead, it is expected that GCC should be properly configured targeting modern x86 architectures. OSD_Signal now declares fFltExceptions as thread_local variable accessible through OSD::ToCatchFloatingSignals() property. Standard_THREADLOCAL macro (wrapping thread_local attribute) has been moved to public header Standard_Macro.hxx. OSD_Parallel::ForEach() has been extended with new optional parameter theNbItems and uses OSD_ThreadPool::DefaultPool(). |
|||
mod - src/BRepMesh/BRepMesh_FastDiscret.cxx | Diff File | |||
mod - src/BRepMesh/BRepMesh_IncrementalMesh.cxx | Diff File | |||
mod - src/OSD/FILES | Diff File | |||
mod - src/OSD/OSD.hxx | Diff File | |||
mod - src/OSD/OSD_Parallel.hxx | Diff File | |||
mod - src/OSD/OSD_Parallel_TBB.cxx | Diff File | |||
mod - src/OSD/OSD_Parallel_Threads.cxx | Diff File | |||
mod - src/OSD/OSD_signal.cxx | Diff File | |||
add - src/OSD/OSD_ThreadPool.cxx | Diff File | |||
add - src/OSD/OSD_ThreadPool.hxx | Diff File | |||
mod - src/QABugs/QABugs_19.cxx | Diff File | |||
mod - src/Standard/FILES | Diff File | |||
mod - src/Standard/Standard_Atomic.hxx | Diff File | |||
add - src/Standard/Standard_Condition.cxx | Diff File | |||
add - src/Standard/Standard_Condition.hxx | Diff File | |||
mod - src/Standard/Standard_Failure.cxx | Diff File | |||
mod - src/Standard/Standard_Macro.hxx | Diff File |