|
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 |