libfoedus-core
FOEDUS Core Library
|
An entry in CLL/RLL for system transactions. More...
An entry in CLL/RLL for system transactions.
Analogous to LockEntry, but a bit different because system transactions also take page locks.
Definition at line 80 of file sysxct_impl.hpp.
#include <sysxct_impl.hpp>
Classes | |
struct | LessThan |
for std::binary_search() etc without creating the object More... | |
Public Member Functions | |
void | clear () |
void | set (UniversalLockId lock_id, uintptr_t lock, bool page_lock) |
RwLockableXctId * | get_as_record_lock () const |
storage::Page * | get_as_page_lock () const |
bool | is_locked () const |
bool | operator< (const SysxctLockEntry &rhs) const |
Public Attributes | |
UniversalLockId | universal_lock_id_ |
Used to order locks in canonical order. More... | |
uintptr_t | lock_ |
Virtual address of a record lock. More... | |
McsBlockIndex | mcs_block_ |
0 means the lock not taken. More... | |
bool | page_lock_ |
Whether this is a pge lock or not. More... | |
bool | used_in_this_run_ |
whether the lock was requested at least once in this run. More... | |
Friends | |
std::ostream & | operator<< (std::ostream &o, const SysxctLockEntry &v) |
Debugging. More... | |
|
inline |
Definition at line 109 of file sysxct_impl.hpp.
References foedus::xct::kNullUniversalLockId.
|
inline |
Definition at line 129 of file sysxct_impl.hpp.
References ASSERT_ND, and lock_.
Referenced by foedus::xct::operator<<().
|
inline |
Definition at line 125 of file sysxct_impl.hpp.
References ASSERT_ND, and lock_.
Referenced by foedus::xct::operator<<().
|
inline |
Definition at line 134 of file sysxct_impl.hpp.
|
inline |
Definition at line 136 of file sysxct_impl.hpp.
References universal_lock_id_.
|
inline |
Definition at line 117 of file sysxct_impl.hpp.
Referenced by foedus::xct::SysxctLockList::batch_get_or_add_entries(), and foedus::xct::SysxctLockList::get_or_add_entry().
|
friend |
uintptr_t foedus::xct::SysxctLockEntry::lock_ |
Virtual address of a record lock.
Either this or the page_lock is non-null. Either RwLockableXctId* or Page*
Definition at line 91 of file sysxct_impl.hpp.
Referenced by get_as_page_lock(), and get_as_record_lock().
McsBlockIndex foedus::xct::SysxctLockEntry::mcs_block_ |
0 means the lock not taken.
Definition at line 98 of file sysxct_impl.hpp.
Referenced by foedus::xct::operator<<().
bool foedus::xct::SysxctLockEntry::page_lock_ |
Whether this is a pge lock or not.
Definition at line 101 of file sysxct_impl.hpp.
Referenced by foedus::xct::operator<<().
UniversalLockId foedus::xct::SysxctLockEntry::universal_lock_id_ |
Used to order locks in canonical order.
So far universal_lock_id_ == reinterpret_cast<uintptr_t>(lock_).
Definition at line 85 of file sysxct_impl.hpp.
Referenced by foedus::xct::SysxctLockList::batch_get_or_add_entries(), foedus::xct::SysxctLockList::is_try_mode_required(), foedus::xct::SysxctLockEntry::LessThan::operator()(), operator<(), and foedus::xct::operator<<().
bool foedus::xct::SysxctLockEntry::used_in_this_run_ |
whether the lock was requested at least once in this run.
If false, we will not include this lock in next run.
Definition at line 107 of file sysxct_impl.hpp.
Referenced by foedus::xct::SysxctLockList::compress_entries(), and foedus::xct::operator<<().