upgraded locking

This commit is contained in:
Jeff Hill
2001-03-07 16:17:04 +00:00
parent 128cedaa06
commit 1aa047bf61
6 changed files with 41 additions and 52 deletions

View File

@@ -19,44 +19,37 @@
epicsShareDef cacServiceList cacGlobalServiceList;
cacServiceList::cacServiceList ()
{
}
void cacServiceList::registerService ( cacServiceIO &service )
{
this->lock ();
epicsAutoMutex locker ( this->mutex );
this->services.add ( service );
this->unlock ();
}
cacChannelIO * cacServiceList::createChannelIO ( const char *pName,
cac &cacCtx, cacChannelNotify &chan )
cacChannelIO * cacServiceList::createChannelIO (
const char *pName, cacChannelNotify &chan )
{
cacChannelIO *pChanIO = 0;
this->lock ();
epicsAutoMutex locker ( this->mutex );
tsDLIterBD < cacServiceIO > iter = this->services.firstIter ();
while ( iter.valid () ) {
pChanIO = iter->createChannelIO ( pName, cacCtx, chan );
pChanIO = iter->createChannelIO ( pName, chan );
if ( pChanIO ) {
break;
}
iter++;
}
this->unlock ();
return pChanIO;
}
void cacServiceList::show ( unsigned level ) const
{
this->lock ();
epicsAutoMutex locker ( this->mutex );
tsDLIterConstBD < cacServiceIO > iter = this->services.firstIter ();
while ( iter.valid () ) {
iter->show ( level );
iter++;
}
this->unlock ();
}