Tervel  1.0.0
A collection of wait-free containers and algorithms.
Public Member Functions | Private Attributes | List of all members
tervel::util::memory::rc::ReadFirstOp Class Reference

Class used for placement in the Op Table to complete an operation that failed to complete in a bounded number of steps. More...

#include <descriptor_read_first_op.h>

Inheritance diagram for tervel::util::memory::rc::ReadFirstOp:
tervel::util::OpRecord tervel::util::memory::hp::Element

Public Member Functions

 ReadFirstOp (std::atomic< void * > *address)
 
 ~ReadFirstOp ()
 
void help_complete ()
 This function overrides the virtual function in the OpRecord class It is called by the progress assurance scheme. More...
 
void * load ()
 
- Public Member Functions inherited from tervel::util::OpRecord
 OpRecord ()
 
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...
 

Private Attributes

std::atomic< void * > * address_
 
std::atomic< void * > value_
 

Detailed Description

Class used for placement in the Op Table to complete an operation that failed to complete in a bounded number of steps.

Constructor & Destructor Documentation

tervel::util::memory::rc::ReadFirstOp::ReadFirstOp ( std::atomic< void * > *  address)
inlineexplicit
tervel::util::memory::rc::ReadFirstOp::~ReadFirstOp ( )
inline

Member Function Documentation

void tervel::util::memory::rc::ReadFirstOp::help_complete ( )
virtual

This function overrides the virtual function in the OpRecord class It is called by the progress assurance scheme.

Implements tervel::util::OpRecord.

void* tervel::util::memory::rc::ReadFirstOp::load ( )

Member Data Documentation

std::atomic<void *>* tervel::util::memory::rc::ReadFirstOp::address_
private
std::atomic<void *> tervel::util::memory::rc::ReadFirstOp::value_
private

The documentation for this class was generated from the following file: