fixed race condition
This commit is contained in:
@@ -73,7 +73,6 @@ public:
|
||||
unsigned type, unsigned long count, unsigned mask, cacChannel::ioid * );
|
||||
void destroy ();
|
||||
void show ( unsigned level ) const;
|
||||
void channelDestroyNotify ();
|
||||
void * operator new ( size_t size );
|
||||
void operator delete ( void *pCadaver, size_t size );
|
||||
protected:
|
||||
|
||||
@@ -257,7 +257,6 @@ void dbServiceIO::destroyAllIO ( dbChannelIO & chan )
|
||||
while ( ( pIO = chan.dbServicePrivateListOfIO::eventq.get() ) ) {
|
||||
this->ioTable.remove ( *pIO );
|
||||
tmp.add ( *pIO );
|
||||
pIO->channelDestroyNotify ();
|
||||
}
|
||||
if ( chan.dbServicePrivateListOfIO::pBlocker ) {
|
||||
this->ioTable.remove ( *chan.dbServicePrivateListOfIO::pBlocker );
|
||||
|
||||
@@ -57,6 +57,8 @@ dbSubscriptionIO::~dbSubscriptionIO ()
|
||||
if ( this->es ) {
|
||||
db_cancel_event ( this->es );
|
||||
}
|
||||
this->notify.exception ( ECA_CHANDESTROY,
|
||||
this->chan.pName(), this->type, this->count );
|
||||
}
|
||||
|
||||
void dbSubscriptionIO::destroy ()
|
||||
@@ -83,12 +85,6 @@ extern "C" void dbSubscriptionEventCallback ( void *pPrivate, struct dbAddr * /*
|
||||
pIO->chan.callStateNotify ( pIO->type, pIO->count, pfl, pIO->notify );
|
||||
}
|
||||
|
||||
void dbSubscriptionIO::channelDestroyNotify ()
|
||||
{
|
||||
this->notify.exception ( ECA_CHANDESTROY,
|
||||
this->chan.pName(), this->type, this->count );
|
||||
}
|
||||
|
||||
void dbSubscriptionIO::show ( unsigned level ) const
|
||||
{
|
||||
printf ( "Data base subscription IO at %p\n",
|
||||
|
||||
Reference in New Issue
Block a user