template<
typename T>
class broom::BroomLifetimeAnchor< T >
BroomLifetimeAnchor encapsulates the notion of a lifetime of a BroomSharingPointer. When a managed pointer is shared between threads, the threads which do not own the managed pointer must anchor its lifetime at some point during their use of said pointer. Failing to do so will result in a pinned allocation that cannot be garbage collected. The number of BroomLifetimeAnchor usages must match the number of times the pointer was shared using broom::share().
*
* Thread 1:
* ...
* queue.push(broom::share<T>(broom::allocate<T>(...)));
* ...
*
* Thread 2:
* ...
* {
* ...
* broom::lifetime_anchor<T> value = queue.front();
* queue.pop();
* ...
* } <- broom::lifetime_anchor<T> is destroyed
* ^
* Usage of any broom::sharing_ptr<T> below here may be unsafe depending
* on the integer argument during initialization.
* ...
* lifetime_anchor is also available as a type alias for this class to support a more traditional C++ style.
Definition at line 631 of file broom.h.