Interface of a service implementing thread support. More...
#include <arccore/concurrency/IThreadImplementation.h>
Public Member Functions | |
| virtual void | addReference ()=0 |
| virtual void | removeReference ()=0 |
| virtual void | initialize ()=0 |
| virtual ThreadImpl * | createThread (IFunctor *f)=0 |
| virtual void | joinThread (ThreadImpl *t)=0 |
| virtual void | destroyThread (ThreadImpl *t)=0 |
| virtual void | createSpinLock (Int64 *spin_lock_addr)=0 |
| virtual void | lockSpinLock (Int64 *spin_lock_addr, Int64 *scoped_spin_lock_addr)=0 |
| virtual void | unlockSpinLock (Int64 *spin_lock_addr, Int64 *scoped_spin_lock_addr)=0 |
| virtual MutexImpl * | createMutex ()=0 |
| virtual void | destroyMutex (MutexImpl *)=0 |
| virtual void | lockMutex (MutexImpl *mutex)=0 |
| virtual void | unlockMutex (MutexImpl *mutex)=0 |
| virtual Int64 | currentThread ()=0 |
| virtual IThreadBarrier * | createBarrier ()=0 |
| virtual bool | isMultiThread () const |
| True if the implementation supports multiple threads. | |
Friends | |
| class | SpinLock |
| class | ScopedLock |
| class | ManualLock |
Interface of a service implementing thread support.
This service uses a reference counter and must be destroyed if there are no more references to it. It should therefore generally not be destroyed explicitly.
Definition at line 37 of file arccore/src/concurrency/arccore/concurrency/IThreadImplementation.h.
|
inlinevirtual |
True if the implementation supports multiple threads.
In single-thread mode, only one thread executes. Therefore, there is no need to create synchronization management classes such as Mutexes or SpinLocks.
Reimplemented in Arcane::NullThreadImplementation.
Definition at line 90 of file arccore/src/concurrency/arccore/concurrency/IThreadImplementation.h.
|
friend |
Definition at line 45 of file arccore/src/concurrency/arccore/concurrency/IThreadImplementation.h.
|
friend |
Definition at line 44 of file arccore/src/concurrency/arccore/concurrency/IThreadImplementation.h.
|
friend |
Definition at line 43 of file arccore/src/concurrency/arccore/concurrency/IThreadImplementation.h.