Tervel
1.0.0
A collection of wait-free containers and algorithms.
|
#include <ring_buffer_op.h>
Public Member Functions | |
BufferOp (RingBuffer< T > *rb) | |
~BufferOp () | |
virtual void * | associate (Helper *h)=0 |
bool | privAssociate (Helper *h) |
bool | valid (Helper *h) |
void | fail () |
bool | isFail (Helper *&h) |
Helper * | getHelper () |
bool | notDone () |
DISALLOW_COPY_AND_ASSIGN (BufferOp) | |
Public Member Functions inherited from tervel::util::OpRecord | |
OpRecord () | |
virtual void | help_complete ()=0 |
Implementations of this function that upon its return the operation described in the OpRecord has been completed. More... | |
bool | on_watch (std::atomic< void * > *address, void *expected) |
This function is used to achieve a strong watch on an Element. More... | |
bool | on_is_watched () |
This function is used to check a strong watch on an Element. More... | |
void | on_unwatch () |
This function is used to remove a strong watch on an Element. More... | |
Public Member Functions inherited from tervel::util::memory::hp::Element | |
Element () | |
virtual | ~Element () |
void | safe_delete (bool no_check=false, ElementList *const element_list=tervel::tl_thread_info->get_hp_element_list()) |
This function is used to free a hazard pointer protected object if it is safe to do so OR add it to a list to be freed later. More... | |
Public Attributes | |
RingBuffer< T > * | rb_ |
std::atomic< Helper * > | helper_ {nullptr} |
Static Public Attributes | |
static constexpr Helper * | fail_val_ = reinterpret_cast<Helper *>(0x1L) |
|
inline |
|
inline |
|
pure virtual |
tervel::containers::wf::RingBuffer< T >::BufferOp::DISALLOW_COPY_AND_ASSIGN | ( | BufferOp | ) |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
static |
std::atomic<Helper *> tervel::containers::wf::RingBuffer< T >::BufferOp::helper_ {nullptr} |
RingBuffer<T>* tervel::containers::wf::RingBuffer< T >::BufferOp::rb_ |