|
Zero
0.1.0
|
Go to the source code of this file.
Classes | |
| union | qnode_status |
| struct | mcs_lock |
| An MCS queuing spinlock. More... | |
| struct | mcs_lock::qnode |
| struct | mcs_lock::ext_qnode |
Macros | |
| #define | MCS_EXT_QNODE_INITIALIZER {{NULL,false},NULL} |
| #define | MCS_EXT_QNODE_INITIALIZE(x) { (x)._node._next = NULL; (x)._node._waiting = 0; (x)._node._delegated = 0; (x)._held = NULL; } |
Variables | |
| const qnode_status | QNODE_IDLE = {{0, 0}} |
| const qnode_status | QNODE_WAITING = {{1, 0}} |
| const qnode_status | QNODE_DELEGATED = {{1, 1}} |
| const size_t | CACHELINE_MCS_PADDING = CACHELINE_SIZE - sizeof(mcs_lock) |
| #define MCS_EXT_QNODE_INITIALIZE | ( | x | ) | { (x)._node._next = NULL; (x)._node._waiting = 0; (x)._node._delegated = 0; (x)._held = NULL; } |
| #define MCS_EXT_QNODE_INITIALIZER {{NULL,false},NULL} |
| const size_t CACHELINE_MCS_PADDING = CACHELINE_SIZE - sizeof(mcs_lock) |
Used to keep mcs_lock in its own cacheline.
| const qnode_status QNODE_DELEGATED = {{1, 1}} |
| const qnode_status QNODE_IDLE = {{0, 0}} |
| const qnode_status QNODE_WAITING = {{1, 0}} |
1.8.12