diff --git a/src/ioc/db/dbNotify.c b/src/ioc/db/dbNotify.c index f96edf45f..ede8dd30c 100644 --- a/src/ioc/db/dbNotify.c +++ b/src/ioc/db/dbNotify.c @@ -299,7 +299,7 @@ static void notifyCallback(CALLBACK *pcallback) callDone(precord, ppn); } -static void dbProcessNotifyExit(void* junk) +void dbProcessNotifyExit(void) { assert(ellCount(&pnotifyGlobal->freeList)==0); epicsMutexDestroy(pnotifyGlobal->lock); @@ -314,7 +314,6 @@ void dbProcessNotifyInit(void) pnotifyGlobal = dbCalloc(1,sizeof(notifyGlobal)); pnotifyGlobal->lock = epicsMutexMustCreate(); ellInit(&pnotifyGlobal->freeList); - epicsAtExit(dbProcessNotifyExit, NULL); } void dbProcessNotify(processNotify *ppn) diff --git a/src/ioc/db/dbNotify.h b/src/ioc/db/dbNotify.h index 47a1c9134..4b7c3e4dd 100644 --- a/src/ioc/db/dbNotify.h +++ b/src/ioc/db/dbNotify.h @@ -76,6 +76,7 @@ epicsShareFunc void dbNotifyCancel(processNotify *pprocessNotify); /* dbProcessNotifyInit called by iocInit */ epicsShareFunc void dbProcessNotifyInit(void); +epicsShareFunc void dbProcessNotifyExit(void); /*dbNotifyAdd called by dbScanPassive and dbScanLink*/ epicsShareFunc void dbNotifyAdd( diff --git a/src/ioc/misc/iocInit.c b/src/ioc/misc/iocInit.c index 6b317915f..a8dca3c9a 100644 --- a/src/ioc/misc/iocInit.c +++ b/src/ioc/misc/iocInit.c @@ -684,6 +684,7 @@ int iocShutdown(void) dbLockCleanupRecords(pdbbase); asShutdown(); dbChannelExit(); + dbProcessNotifyExit(); iocshFree(); } iocState = iocStopped;