|
Geogram Version 1.8.5
A programming library of geometric algorithms
|
An array of light-weight synchronisation primitives (spinlocks). More...
#include <geogram/basic/thread_sync.h>
Public Types | |
| typedef Numeric::uint32 | word_t |
| Internal representation of SpinLockArray elements. | |
Public Member Functions | |
| SpinLockArray () | |
| Constructs a new SpinLockArray of size 0. | |
| SpinLockArray (index_t size_in) | |
Constructs a new SpinLockArray of size size_in. | |
| void | resize (index_t size_in) |
| Resizes a SpinLockArray. | |
| index_t | size () const |
| Gets the number of spinlocks in this array. | |
| void | clear () |
| Resets size to 0 and clears all the memory. | |
| void | acquire_spinlock (index_t i) |
| Acquires a spinlock at a given index. | |
| void | release_spinlock (index_t i) |
| Releases a spinlock at a given index. | |
An array of light-weight synchronisation primitives (spinlocks).
In this implementation, storage is optimized so that a single bit per spinlock is used.
Definition at line 513 of file thread_sync.h.
Internal representation of SpinLockArray elements.
Each word_t represents 32 spinlocks.
Definition at line 519 of file thread_sync.h.
|
inline |
Constructs a new SpinLockArray of size 0.
Definition at line 524 of file thread_sync.h.
|
inline |
Constructs a new SpinLockArray of size size_in.
| [in] | size_in | number of spinlocks in the array. |
Definition at line 531 of file thread_sync.h.
|
inline |
Acquires a spinlock at a given index.
Loops until spinlock at index i is available then reserve it.
| [in] | i | index of the spinlock |
Definition at line 568 of file thread_sync.h.
|
inline |
Resets size to 0 and clears all the memory.
Definition at line 558 of file thread_sync.h.
|
inline |
Releases a spinlock at a given index.
Makes spinlock at index i available to other threads.
| [in] | i | index of the spinlock |
Definition at line 585 of file thread_sync.h.
|
inline |
Resizes a SpinLockArray.
All the spinlocks are reset to 0.
| [in] | size_in | The desired new size. |
Definition at line 540 of file thread_sync.h.
|
inline |
Gets the number of spinlocks in this array.
Definition at line 551 of file thread_sync.h.