proxygen
|
#include <Hazptr-fwd.h>
Public Member Functions | |
hazptr_domain ()=default | |
~hazptr_domain () | |
hazptr_domain (const hazptr_domain &)=delete | |
hazptr_domain (hazptr_domain &&)=delete | |
hazptr_domain & | operator= (const hazptr_domain &)=delete |
hazptr_domain & | operator= (hazptr_domain &&)=delete |
template<typename T , typename D = std::default_delete<T>> | |
void | retire (T *obj, D reclaim={}) |
void | cleanup () noexcept |
Private Member Functions | |
hazptr_rec< Atom > * | hprec_acquire () |
void | hprec_release (hazptr_rec< Atom > *hprec) noexcept |
void | push_retired (hazptr_obj_list< Atom > &l, bool check=true) |
hazptr_rec< Atom > * | head () const noexcept |
hazptr_obj< Atom > * | retired () const noexcept |
int | hcount () const noexcept |
int | rcount () const noexcept |
bool | reached_threshold (int rc, int hc) const noexcept |
void | reclaim_all_objects () |
void | free_hazptr_recs () |
void | check_cleanup_and_reclaim () |
void | relaxed_cleanup () noexcept |
void | wait_for_zero_bulk_reclaims () |
void | try_bulk_reclaim () |
void | bulk_reclaim (bool transitive=false) |
bool | bulk_lookup_and_reclaim (hazptr_obj< Atom > *obj, const std::unordered_set< const void * > &hashset) |
bool | try_timed_cleanup () |
hazptr_rec< Atom > * | try_acquire_existing_hprec () |
hazptr_rec< Atom > * | acquire_new_hprec () |
Private Attributes | |
Atom< hazptr_rec< Atom > * > | hazptrs_ {nullptr} |
Atom< hazptr_obj< Atom > * > | retired_ {nullptr} |
Atom< uint64_t > | sync_time_ {0} |
Atom< int > | hcount_ {0} |
Atom< int > | rcount_ {0} |
Atom< uint16_t > | num_bulk_reclaims_ {0} |
bool | shutdown_ {false} |
Static Private Attributes | |
static constexpr int | kThreshold = detail::hazptr_domain_rcount_threshold() |
static constexpr int | kMultiplier = 2 |
static constexpr uint64_t | kSyncTimePeriod {2000000000} |
Friends | |
class | hazptr_holder< Atom > |
class | hazptr_obj< Atom > |
void | hazptr_domain_push_retired (hazptr_obj_list< Atom > &, bool check, hazptr_domain< Atom > &) noexcept |
Hazard pointer domain Defined in HazptrDomain.hhazptr_domain
A domain manages a set of hazard pointers and a set of retired objects.
Most user code need not specify any domains.
Definition at line 120 of file Hazptr-fwd.h.
|
default |
Constructor
|
inline |
|
delete |
|
delete |
|
inlineprivate |
Definition at line 324 of file HazptrDomain.h.
|
inlineprivate |
Definition at line 270 of file HazptrDomain.h.
|
inlineprivate |
Definition at line 251 of file HazptrDomain.h.
|
inlineprivate |
Definition at line 203 of file HazptrDomain.h.
|
inlinenoexcept |
cleanup
Definition at line 103 of file HazptrDomain.h.
|
inlineprivate |
Definition at line 188 of file HazptrDomain.h.
|
inlineprivatenoexcept |
Definition at line 158 of file HazptrDomain.h.
|
inlineprivatenoexcept |
Definition at line 150 of file HazptrDomain.h.
|
inlineprivate |
hprec_acquire
Definition at line 120 of file HazptrDomain.h.
|
inlineprivatenoexcept |
|
delete |
|
delete |
|
inlineprivate |
push_retired
Definition at line 131 of file HazptrDomain.h.
|
inlineprivatenoexcept |
Definition at line 162 of file HazptrDomain.h.
|
inlineprivatenoexcept |
Definition at line 166 of file HazptrDomain.h.
|
inlineprivate |
Definition at line 170 of file HazptrDomain.h.
|
inlineprivatenoexcept |
Definition at line 212 of file HazptrDomain.h.
|
inline |
retire - nonintrusive - allocates memory
Definition at line 87 of file HazptrDomain.h.
Referenced by free_function_retire_test().
|
inlineprivatenoexcept |
Definition at line 154 of file HazptrDomain.h.
|
inlineprivate |
Definition at line 312 of file HazptrDomain.h.
|
inlineprivate |
Definition at line 236 of file HazptrDomain.h.
|
inlineprivate |
Definition at line 298 of file HazptrDomain.h.
|
inlineprivate |
Definition at line 230 of file HazptrDomain.h.
|
friend |
hazptr_domain_push_retired
hazptr_domain_push_retired: push a list of retired objects into a domain
Definition at line 369 of file HazptrDomain.h.
|
friend |
Definition at line 113 of file HazptrDomain.h.
|
friend |
Definition at line 114 of file HazptrDomain.h.
|
private |
Definition at line 57 of file HazptrDomain.h.
|
private |
Definition at line 63 of file HazptrDomain.h.
|
staticprivate |
Definition at line 54 of file HazptrDomain.h.
|
staticprivate |
Definition at line 55 of file HazptrDomain.h.
|
staticprivate |
Definition at line 53 of file HazptrDomain.h.
|
private |
Definition at line 65 of file HazptrDomain.h.
|
private |
Definition at line 64 of file HazptrDomain.h.
|
private |
Definition at line 58 of file HazptrDomain.h.
|
private |
Definition at line 66 of file HazptrDomain.h.
Referenced by folly::hazptr_obj< Atom >::push_to_retired().
|
private |
Definition at line 59 of file HazptrDomain.h.