inline void DependableObject::decreasePredecessorsInLock ( DependableObject * finishedPred, int numPred ) { if ( finishedPred != NULL ) { if ( getWD() != NULL && finishedPred->getWD() != NULL ) { getWD()->predecessorFinished( finishedPred->getWD() ); } //remove the predecessor from the list! if ( _predecessors.size() != 0 ) { unsigned int wdId = finishedPred->getWD()->getId(); DependableObjectVector::iterator it = _predecessors.find( std::make_pair( wdId, finishedPred ) ); if ( it != _predecessors.end() ) _predecessors.erase( it ); } } if ( numPred == 0 && !_predecessors.empty() ) { _predecessors.clear(); } }
void WatchFD::stop (void) { inotify_rm_watch (getFD (), getWD ()); mWD = 0; }