23 tbb::mutex::scoped_lock lock(
mutex_);
25 for (LabelBlockList::iterator it =
blocks_.begin();
28 if (block->
first_ == first && block->
last_ == last) {
39 for (LabelBlockList::iterator it =
blocks_.begin();
50 tbb::mutex::scoped_lock lock(
mutex_);
55 : block_manager_(NULL),
64 : block_manager_(block_manager),
78 tbb::mutex::scoped_lock lock(
mutex_);
91 return static_cast<uint32_t
>(
first_ + pos);
99 tbb::mutex::scoped_lock lock(
mutex_);
102 size_t pos = value -
first_;
108 snprintf(repr,
sizeof(repr),
"%u-%u",
first_,
last_);
LabelBlockManagerPtr block_manager_
BitSet & reset(size_t pos)
std::string ToString() const
boost::intrusive_ptr< LabelBlock > LabelBlockPtr
tbb::atomic< int > refcount_
size_t find_first_clear() const
void RemoveBlock(LabelBlock *block)
tbb::atomic< int > refcount_
void ReleaseLabel(uint32_t value)
size_t find_next_clear(size_t pos) const
LabelBlockPtr LocateBlock(uint32_t first, uint32_t last)
LabelBlock(uint32_t first, uint32_t last)