//must be the last call from the runtime_node void remove_node( runtime_node* n ) { typename mutex::scoped_lock g(m_); typename nodes::iterator it; for( it = n_.begin(); it != n_.end(); ++it ) { if( it->second.get() == n ) { del_[n] = it->second; n_.erase(it); c_.notify_all(); return; } } assert( 0 ); //node not found }
void deactivate() { mutex::scoped_lock lk( head_mtx_); deactivate_(); not_empty_cond_.notify_all(); }
void mark_ready_and_notify_() { ready_ = true; waiters_.notify_all(); }