#include <WBMMPolicy.hpp>
WBMMPolicy
- log allocs and frees from within a transaction
- on abort, free any allocs
- on commit, replay any frees
- use epochs to prevent reclamation during a doomed transaction's execution
stm::WBMMPolicy::WBMMPolicy |
( |
| ) |
|
|
inline |
Constructing the DeferredReclamationMMPolicy is very easy Null out the timestamp for a particular thread. We only call this at initialization.
void WBMMPolicy::handle_full_prelimbo |
( |
| ) |
|
|
private |
This code is the cornerstone of the WBMMPolicy. We buffer lots of frees onto a prelimbo list, and then, at some point, we must give that list a timestamp and tuck it away until the timestamp expires. This is how we do it.
void stm::WBMMPolicy::onTxAbort |
( |
| ) |
|
|
inline |
void stm::WBMMPolicy::onTxBegin |
( |
| ) |
|
|
inline |
void stm::WBMMPolicy::onTxCommit |
( |
| ) |
|
|
inline |
void stm::WBMMPolicy::schedForReclaim |
( |
void * |
ptr | ) |
|
|
inlineprivate |
Schedule a pointer for reclamation. Reclamation will not happen until enough time has passed.
void stm::WBMMPolicy::setID |
( |
uint32_t |
id | ) |
|
|
inline |
Since a TxThread constructs its allocator before it gets its id, we need the TxThread to inform the allocator of its id from within the constructor, via this method.
void* stm::WBMMPolicy::txAlloc |
( |
size_t const & |
size | ) |
|
|
inline |
void stm::WBMMPolicy::txFree |
( |
void * |
ptr | ) |
|
|
inline |
volatile uintptr_t* stm::WBMMPolicy::my_ts |
|
private |
The documentation for this class was generated from the following files: