tlds
Transactional Operations for Linked Data Structures
|
#include <cm.hpp>
Static Public Member Functions | |
static void | onAbort (TxThread *) |
static void | onCommit (TxThread *) |
static void | onBegin (TxThread *tx) |
static bool | mayKill (TxThread *tx, uint32_t other) |
Fine-grained CM: we get a timestamp, and use it to decide when to abort the other thread. This is not exactly an attacker-wins policy anymore
This is based on a concept from Bobba et al. ISCA 07
|
inlinestatic |
Permission to kill the other is granted when this transaction's timestamp is less than the other transaction's timestamp
|
inlinestatic |
|
inlinestatic |
On begin, we must get a timestamp. For now, we use a global counter, which is a bottleneck but ensures uniqueness.
|
inlinestatic |