tlds
Transactional Operations for Linked Data Structures
|
#include <metadata.hpp>
Public Attributes | |
struct { | |
uintptr_t lock:1 | |
uintptr_t id:(8*sizeof(uintptr_t))-1 | |
} | fields |
uintptr_t | all |
id_version_t uses the msb as the lock bit. If the msb is zero, treat the word as a version number. Otherwise, treat it as a struct with the lower 8 bits giving the ID of the lock-holding thread.
uintptr_t stm::id_version_t::all |
struct { ... } stm::id_version_t::fields |
uintptr_t stm::id_version_t::id |
uintptr_t stm::id_version_t::lock |