7 #include <boost/bind.hpp>
19 : manager_(manager), refcount_(0), shutdown_invoked_(false),
20 delete_paused_(false),
22 delete_time_stamp_usecs_(0) {
39 tbb::mutex::scoped_lock lock(
mutex_);
40 if (
deleted_.fetch_and_store(
true)) {
59 tbb::mutex::scoped_lock lock(
mutex_);
102 tbb::mutex::scoped_lock lock(
mutex_);
114 tbb::mutex::scoped_lock lock(
mutex_);
128 tbb::mutex::scoped_lock lock(
mutex_);
142 tbb::mutex::scoped_lock lock(
mutex_);
154 tbb::mutex::scoped_lock lock(
mutex_);
159 tbb::mutex::scoped_lock lock(
mutex_);
169 queue_.set_name(
"LifetimeManager");
180 queue_.set_disable(disabled);
191 actor_ref.
actor = actor;
192 queue_.Enqueue(actor_ref);
197 actor_ref.
actor = actor;
198 queue_.Enqueue(actor_ref);
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)
tbb::atomic< bool > deleted_
void Remove(DependencyRef< NodeType, ObjectType > *node)
WorkQueue< LifetimeActorRef > queue_
void ReferenceIncrement()
void DependencyRemove(DependencyRef< LifetimeRefBase, LifetimeActor > *node)
void Add(DependencyRef< NodeType, ObjectType > *node)
LifetimeManager * manager_
bool DeleteExecutor(LifetimeActorRef actor_ref)
void set_shutdown_invoked()
virtual bool MayDelete() const =0
virtual void DeleteComplete()
void DependencyAdd(DependencyRef< LifetimeRefBase, LifetimeActor > *node)
LifetimeRefBase(LifetimeActor *actor)
static uint64_t UTCTimestampUsec()
void EnqueueNoIncrement(LifetimeActor *actor)
IteratorBase< LifetimeRefBase, typename List::iterator > iterator