also merged in removal of c++ support for old HPUX compiler
This commit is contained in:
Jeff Hill johill@lanl.gov
2013-05-16 12:33:31 -06:00
parent 593e313fab
commit e0bc071de3
53 changed files with 635 additions and 399 deletions

View File

@@ -61,19 +61,21 @@ dbChannelIO::~dbChannelIO ()
{
}
void dbChannelIO::destructor ( epicsGuard < epicsMutex > & guard )
void dbChannelIO::destructor ( CallbackGuard & cbGuard,
epicsGuard < epicsMutex > & guard )
{
guard.assertIdenticalMutex ( this->mutex );
this->serviceIO.destroyAllIO ( guard, *this );
this->serviceIO.destroyAllIO ( cbGuard, guard, *this );
this->~dbChannelIO ();
}
void dbChannelIO::destroy (
CallbackGuard & cbGuard,
epicsGuard < epicsMutex > & guard )
{
guard.assertIdenticalMutex ( this->mutex );
this->serviceIO.destroyChannel ( guard, *this );
// dont access this pointer after above call because
this->serviceIO.destroyChannel ( cbGuard, guard, *this );
// don't access this pointer after above call because
// object nolonger exists
}
@@ -132,11 +134,12 @@ void dbChannelIO::subscribe (
}
void dbChannelIO::ioCancel (
CallbackGuard & cbGuard,
epicsGuard < epicsMutex > & mutualExclusionGuard,
const ioid & id )
{
mutualExclusionGuard.assertIdenticalMutex ( this->mutex );
this->serviceIO.ioCancel ( mutualExclusionGuard, *this, id );
this->serviceIO.ioCancel ( cbGuard, mutualExclusionGuard, *this, id );
}
void dbChannelIO::ioShow (
@@ -204,13 +207,6 @@ void * dbChannelIO::operator new ( size_t size,
return freeList.allocate ( size );
}
void * dbChannelIO::operator new ( size_t ) // X aCC 361
{
// The HPUX compiler seems to require this even though no code
// calls it directly
throw std::logic_error ( "why is the compiler calling private operator new" );
}
#ifdef CXX_PLACEMENT_DELETE
void dbChannelIO::operator delete ( void *pCadaver,
tsFreeList < dbChannelIO, 256, epicsMutexNOOP > & freeList )