|
libfoedus-core
FOEDUS Core Library
|
Implements an MCS-locking Algorithm. More...
Implements an MCS-locking Algorithm.
| ADAPTOR | A template that implements the McsAdaptorConcept template concept. We explicitly instantiate for all possible ADAPTOR types in cpp. |
| RW_BLOCK | Queue node object for RW-lock. Either McsRwSimpleBlock or McsRwExtendedBlock. This also defines the implementation. |
Definition at line 87 of file xct_mcs_impl.hpp.
#include <xct_mcs_impl.hpp>
Public Member Functions | |
| McsImpl (ADAPTOR adaptor) | |
| McsBlockIndex | acquire_unconditional_rw_reader (McsRwLock *lock) |
| RW-lock methods: BEGIN. More... | |
| McsBlockIndex | acquire_unconditional_rw_writer (McsRwLock *lock) |
| [RW] Unconditionally takes a writer lock. More... | |
| McsBlockIndex | acquire_try_rw_reader (McsRwLock *lock) |
| Try-acquire. More... | |
| McsBlockIndex | acquire_try_rw_writer (McsRwLock *lock) |
| [RW] Try to take a writer lock. More... | |
| AcquireAsyncRet | acquire_async_rw_reader (McsRwLock *lock) |
| Async-acquire trios (acquire, cancel, retry) More... | |
| AcquireAsyncRet | acquire_async_rw_writer (McsRwLock *lock) |
| [RW] Asynchronously try to take a writer lock. More... | |
| bool | retry_async_rw_reader (McsRwLock *lock, McsBlockIndex block_index) |
| [RW] Returns whether the lock requeust is now granted. More... | |
| bool | retry_async_rw_writer (McsRwLock *lock, McsBlockIndex block_index) |
| void | cancel_async_rw_reader (McsRwLock *lock, McsBlockIndex block_index) |
| [RW] Cancels the lock request. More... | |
| void | cancel_async_rw_writer (McsRwLock *lock, McsBlockIndex block_index) |
| void | release_rw_reader (McsRwLock *lock, McsBlockIndex block_index) |
| Release and other stuffs. More... | |
| void | release_rw_writer (McsRwLock *lock, McsBlockIndex block_index) |
| [RW] Releases a writer lock. More... | |
Static Public Member Functions | |
| static bool | does_support_try_rw_reader () |
|
inlineexplicit |
Definition at line 89 of file xct_mcs_impl.hpp.
| AcquireAsyncRet foedus::xct::McsImpl< ADAPTOR, RW_BLOCK >::acquire_async_rw_reader | ( | McsRwLock * | lock | ) |
Async-acquire trios (acquire, cancel, retry)
[RW] Asynchronously try to take a reader lock.
| AcquireAsyncRet foedus::xct::McsImpl< ADAPTOR, RW_BLOCK >::acquire_async_rw_writer | ( | McsRwLock * | lock | ) |
[RW] Asynchronously try to take a writer lock.
| McsBlockIndex foedus::xct::McsImpl< ADAPTOR, RW_BLOCK >::acquire_try_rw_reader | ( | McsRwLock * | lock | ) |
Try-acquire.
[RW] Try to take a reader lock.
| McsBlockIndex foedus::xct::McsImpl< ADAPTOR, RW_BLOCK >::acquire_try_rw_writer | ( | McsRwLock * | lock | ) |
[RW] Try to take a writer lock.
| McsBlockIndex foedus::xct::McsImpl< ADAPTOR, RW_BLOCK >::acquire_unconditional_rw_reader | ( | McsRwLock * | lock | ) |
RW-lock methods: BEGIN.
Unconditional-acquire [RW] Unconditionally takes a reader lock.
| McsBlockIndex foedus::xct::McsImpl< ADAPTOR, RW_BLOCK >::acquire_unconditional_rw_writer | ( | McsRwLock * | lock | ) |
[RW] Unconditionally takes a writer lock.
| void foedus::xct::McsImpl< ADAPTOR, RW_BLOCK >::cancel_async_rw_reader | ( | McsRwLock * | lock, |
| McsBlockIndex | block_index | ||
| ) |
[RW] Cancels the lock request.
| void foedus::xct::McsImpl< ADAPTOR, RW_BLOCK >::cancel_async_rw_writer | ( | McsRwLock * | lock, |
| McsBlockIndex | block_index | ||
| ) |
|
static |
| void foedus::xct::McsImpl< ADAPTOR, RW_BLOCK >::release_rw_reader | ( | McsRwLock * | lock, |
| McsBlockIndex | block_index | ||
| ) |
Release and other stuffs.
[RW] Releases a reader lock.
| void foedus::xct::McsImpl< ADAPTOR, RW_BLOCK >::release_rw_writer | ( | McsRwLock * | lock, |
| McsBlockIndex | block_index | ||
| ) |
[RW] Releases a writer lock.
Referenced by foedus::xct::SysxctLockList::release_all_locks().

| bool foedus::xct::McsImpl< ADAPTOR, RW_BLOCK >::retry_async_rw_reader | ( | McsRwLock * | lock, |
| McsBlockIndex | block_index | ||
| ) |
[RW] Returns whether the lock requeust is now granted.
Referenced by foedus::xct::McsImpl< ADAPTOR, McsRwSimpleBlock >::acquire_async_rw_reader(), foedus::xct::McsImpl< ADAPTOR, McsRwSimpleBlock >::acquire_try_rw_reader(), and foedus::xct::McsImpl< ADAPTOR, McsRwExtendedBlock >::cancel_async_rw_reader().

| bool foedus::xct::McsImpl< ADAPTOR, RW_BLOCK >::retry_async_rw_writer | ( | McsRwLock * | lock, |
| McsBlockIndex | block_index | ||
| ) |
Referenced by foedus::xct::McsImpl< ADAPTOR, McsRwSimpleBlock >::acquire_async_rw_writer(), and foedus::xct::McsImpl< ADAPTOR, McsRwSimpleBlock >::acquire_try_rw_writer().
