From 0197dbeb246be8aa9a3ddfa0d6ca41005cc6adde Mon Sep 17 00:00:00 2001 From: Marty Kraimer Date: Thu, 2 Dec 2004 19:57:21 +0000 Subject: [PATCH] fix memory leak --- src/db/dbNotify.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/db/dbNotify.c b/src/db/dbNotify.c index 7ac4cd57b..d2fbcf67d 100644 --- a/src/db/dbNotify.c +++ b/src/db/dbNotify.c @@ -240,10 +240,10 @@ STATIC void notifyCallback(CALLBACK *pcallback) restartCheck(precord->ppnr); } pputNotifyPvt->state = putNotifyNotActive; - pputNotifyPvt->cancelWait = 0; + epicsEventSignal(pputNotifyPvt->cancelEvent); + putNotifyCleanup(ppn); epicsMutexUnlock(pnotifyGlobal->lock); dbScanUnlock(precord); - epicsEventSignal(pputNotifyPvt->cancelEvent); return; } if(pputNotifyPvt->state==putNotifyRestartCallbackRequested) { @@ -364,9 +364,6 @@ void epicsShareAPI dbNotifyCancel(putNotify *ppn) epicsMutexUnlock(pnotifyGlobal->lock); dbScanUnlock(precord); epicsEventWait(pputNotifyPvt->cancelEvent); - epicsMutexMustLock(pnotifyGlobal->lock); - pputNotifyPvt->cancelWait = 0; - epicsMutexUnlock(pnotifyGlobal->lock); return; } switch(state) { @@ -392,6 +389,7 @@ void epicsShareAPI dbNotifyCancel(putNotify *ppn) printf("dbNotify: illegal state for notifyCallback\n"); } pputNotifyPvt->state = putNotifyNotActive; + putNotifyCleanup(ppn); epicsMutexUnlock(pnotifyGlobal->lock); dbScanUnlock(precord); }