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