From 19031a7d11de23589df1a0d65cb4305e9cb37903 Mon Sep 17 00:00:00 2001 From: Dirk Zimoch Date: Thu, 10 Jun 2021 15:20:54 +0200 Subject: [PATCH] make callbackRequest safer in case initialization fails --- modules/database/src/ioc/db/callback.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/modules/database/src/ioc/db/callback.c b/modules/database/src/ioc/db/callback.c index 3fa249392..4a26e27ac 100644 --- a/modules/database/src/ioc/db/callback.c +++ b/modules/database/src/ioc/db/callback.c @@ -263,7 +263,9 @@ void callbackCleanup(void) assert(epicsAtomicGetIntT(&mySet->threadsRunning)==0); epicsEventDestroy(mySet->semWakeUp); + mySet->semWakeUp = NULL; epicsRingPointerDelete(mySet->queue); + mySet->queue = NULL; } epicsTimerQueueRelease(timerQueue); @@ -333,6 +335,10 @@ int callbackRequest(epicsCallback *pcallback) return S_db_badChoice; } mySet = &callbackQueue[priority]; + if (!mySet->queue) { + epicsInterruptContextMessage("callbackRequest: Callbacks not initialized\n"); + return S_db_notInit; + } if (mySet->queueOverflow) return S_db_bufFull; pushOK = epicsRingPointerPush(mySet->queue, pcallback);