diff --git a/src/ioc/db/dbCa.c b/src/ioc/db/dbCa.c index f0c6f6f36..edeeac524 100644 --- a/src/ioc/db/dbCa.c +++ b/src/ioc/db/dbCa.c @@ -223,19 +223,12 @@ void dbCaShutdown(void) } } -static void dbCaExit(void *arg) -{ - dbCaShutdown(); -} - void dbCaLinkInitIsolated(void) { if (!workListLock) workListLock = epicsMutexMustCreate(); - if (!workListEvent) { + if (!workListEvent) workListEvent = epicsEventMustCreate(epicsEventEmpty); - epicsAtExit(dbCaExit, NULL); - } dbCaCtl = ctlExit; } diff --git a/src/ioc/misc/iocInit.c b/src/ioc/misc/iocInit.c index 9759ba18f..1e30eeb77 100644 --- a/src/ioc/misc/iocInit.c +++ b/src/ioc/misc/iocInit.c @@ -682,6 +682,9 @@ int iocShutdown(void) /* stop and "join" threads */ scanStop(); callbackStop(); + } + dbCaShutdown(); + if (iocBuildMode==buildIsolated) { /* free resources */ scanCleanup(); callbackCleanup();