libfoedus-core
FOEDUS Core Library
|
Pre-allocated MCS block for WW-locks. More...
Pre-allocated MCS block for WW-locks.
we so far pre-allocate at most 2^16 nodes per thread.
Definition at line 274 of file xct_id.hpp.
#include <xct_id.hpp>
Public Member Functions | |
bool | has_successor_relaxed () const __attribute__((always_inline)) |
setter/getter for successor_. More... | |
bool | has_successor_consume () const __attribute__((always_inline)) |
bool | has_successor_acquire () const __attribute__((always_inline)) |
bool | has_successor_atomic () const __attribute__((always_inline)) |
uint32_t | get_successor_thread_id_relaxed () const __attribute__((always_inline)) |
Carefully use this! In some places you must call copy_once() then call this on the copy. More... | |
McsBlockIndex | get_successor_block_relaxed () const __attribute__((always_inline)) |
Carefully use this! In some places you must call copy_once() then call this on the copy. More... | |
void | clear_successor_atomic () __attribute__((always_inline)) |
void | clear_successor_release () __attribute__((always_inline)) |
void | set_successor_atomic (thread::ThreadId thread_id, McsBlockIndex block) __attribute__((always_inline)) |
void | set_successor_release (thread::ThreadId thread_id, McsBlockIndex block) __attribute__((always_inline)) |
Public Attributes | |
McsWwBlockData | successor_ |
The successor of MCS lock queue after this thread (in other words, the thread that is waiting for this thread). More... | |
|
inline |
Definition at line 301 of file xct_id.hpp.
References foedus::xct::McsWwBlockData::clear_atomic().
|
inline |
Definition at line 302 of file xct_id.hpp.
References foedus::xct::McsWwBlockData::clear_release().
Referenced by foedus::xct::McsWwImpl< ADAPTOR >::acquire_try(), foedus::xct::McsWwImpl< ADAPTOR >::acquire_unconditional(), and foedus::xct::McsWwImpl< ADAPTOR >::initial().
|
inline |
Carefully use this! In some places you must call copy_once() then call this on the copy.
We thus put "_relaxed" as suffix.
Definition at line 298 of file xct_id.hpp.
References foedus::xct::McsWwBlockData::get_block_relaxed().
|
inline |
Carefully use this! In some places you must call copy_once() then call this on the copy.
We thus put "_relaxed" as suffix.
Definition at line 291 of file xct_id.hpp.
References foedus::xct::McsWwBlockData::get_thread_id_relaxed().
Referenced by foedus::xct::McsWwImpl< ADAPTOR >::release().
|
inline |
Definition at line 285 of file xct_id.hpp.
References foedus::xct::McsWwBlockData::is_valid_acquire().
Referenced by foedus::xct::McsWwImpl< ADAPTOR >::release().
|
inline |
Definition at line 286 of file xct_id.hpp.
References foedus::xct::McsWwBlockData::is_valid_atomic().
|
inline |
Definition at line 284 of file xct_id.hpp.
References foedus::xct::McsWwBlockData::is_valid_consume().
|
inline |
setter/getter for successor_.
Definition at line 283 of file xct_id.hpp.
References foedus::xct::McsWwBlockData::is_valid_relaxed().
|
inline |
Definition at line 303 of file xct_id.hpp.
References foedus::xct::McsWwBlockData::set_atomic().
|
inline |
Definition at line 306 of file xct_id.hpp.
References foedus::xct::McsWwBlockData::set_release().
McsWwBlockData foedus::xct::McsWwBlock::successor_ |
The successor of MCS lock queue after this thread (in other words, the thread that is waiting for this thread).
Successor is represented by thread ID and block, the index in mcs_blocks_.
Definition at line 280 of file xct_id.hpp.