libfoedus-core
FOEDUS Core Library
|
A ownerless (contextless) interface for McsWwImpl. More...
A ownerless (contextless) interface for McsWwImpl.
Conceptually this is part of McsWwImpl, but this doesn't depend on Adaptor because guests don't need any context in MCSg. We separate the methods to this class for easier use.
Definition at line 218 of file xct_mcs_impl.hpp.
#include <xct_mcs_impl.hpp>
Public Member Functions | |
McsWwOwnerlessImpl ()=delete | |
~McsWwOwnerlessImpl ()=delete | |
Static Public Member Functions | |
static void | ownerless_acquire_unconditional (McsWwLock *lock) |
[WW-Guest] Unconditionally takes exclusive-only guest lock on the given MCSg lock. More... | |
static bool | ownerless_acquire_try (McsWwLock *lock) |
[WW-Guest] Try to take an exclusive guest lock on the given MCSg lock. More... | |
static void | ownerless_release (McsWwLock *lock) |
static void | ownerless_initial (McsWwLock *lock) |
|
delete |
|
delete |
|
static |
[WW-Guest] Try to take an exclusive guest lock on the given MCSg lock.
Definition at line 292 of file xct_mcs_impl.cpp.
References foedus::xct::assert_mcs_aligned(), ASSERT_ND, foedus::xct::McsWwLock::is_locked(), foedus::xct::McsWwBlockData::is_valid_relaxed(), foedus::xct::kMcsGuestId, foedus::xct::McsWwLock::tail_, and foedus::xct::McsWwBlockData::word_.
|
static |
[WW-Guest] Unconditionally takes exclusive-only guest lock on the given MCSg lock.
Ownerless interface for WW-lock implementations.
Definition at line 272 of file xct_mcs_impl.cpp.
References foedus::xct::assert_mcs_aligned(), ASSERT_ND, foedus::xct::McsWwLock::is_locked(), foedus::xct::McsWwBlockData::is_valid_relaxed(), foedus::xct::kMcsGuestId, foedus::xct::spin_until(), foedus::xct::McsWwLock::tail_, and foedus::xct::McsWwBlockData::word_.
Referenced by foedus::xct::McsWwLock::ownerless_acquire_lock().
|
static |
Definition at line 315 of file xct_mcs_impl.cpp.
References foedus::xct::assert_mcs_aligned(), ASSERT_ND, foedus::xct::McsWwLock::is_locked(), and foedus::xct::McsWwLock::reset_guest_id_release().
Referenced by foedus::xct::McsWwLock::ownerless_initial_lock().
|
static |
Definition at line 321 of file xct_mcs_impl.cpp.
References foedus::xct::assert_mcs_aligned(), ASSERT_ND, foedus::xct::McsWwBlockData::is_guest_relaxed(), foedus::xct::McsWwLock::is_locked(), foedus::xct::McsWwBlockData::is_valid_relaxed(), foedus::xct::kMcsGuestId, foedus::xct::spin_until(), foedus::xct::McsWwLock::tail_, and foedus::xct::McsWwBlockData::word_.
Referenced by foedus::xct::McsWwLock::ownerless_release_lock().