5 #ifndef __BASE__LIFETIME_H__
6 #define __BASE__LIFETIME_H__
8 #include <tbb/atomic.h>
107 ptr_->ManagedDelete();
uint64_t delete_time_stamp_usecs_
virtual bool MayDestroy()
LifetimeManager(int task_id)
virtual void SetQueueDisable(bool disabled)
bool ReferenceDecrementAndTest()
virtual ~LifetimeRefBase()
virtual ~LifetimeManager()
void Enqueue(LifetimeActor *actor)
LifetimeActor(LifetimeManager *manager)
uint64_t create_time_stamp_usecs_
tbb::atomic< bool > deleted_
WorkQueue< LifetimeActorRef > queue_
void ReferenceIncrement()
void DependencyRemove(DependencyRef< LifetimeRefBase, LifetimeActor > *node)
bool HasDependents() const
LifetimeManager * manager_
void Reset(LifetimeActor *actor)
size_t GetQueueDeferCount()
bool DeleteExecutor(LifetimeActorRef actor_ref)
void set_shutdown_invoked()
LifetimeRef(Ref *ptr, LifetimeActor *actor)
virtual bool MayDelete() const =0
virtual void DeleteComplete()
void DependencyAdd(DependencyRef< LifetimeRefBase, LifetimeActor > *node)
DISALLOW_COPY_AND_ASSIGN(LifetimeManager)
LifetimeRefBase(LifetimeActor *actor)
DISALLOW_COPY_AND_ASSIGN(LifetimeActor)
DependencyRef< LifetimeRefBase, LifetimeActor > ref_
void EnqueueNoIncrement(LifetimeActor *actor)
DependencyList< LifetimeRefBase, LifetimeActor > Dependents
DISALLOW_COPY_AND_ASSIGN(LifetimeRef)
DISALLOW_COPY_AND_ASSIGN(LifetimeRefBase)
const uint64_t delete_time_stamp_usecs() const
const uint64_t create_time_stamp_usecs() const
void reset(ObjectType *ptr)