From 42ecec6b117f300b24c3247200e36dd0f16a7c86 Mon Sep 17 00:00:00 2001 From: Marty Kraimer Date: Thu, 20 Sep 2001 13:46:08 +0000 Subject: [PATCH] fix bugs in dbLockShowLocked --- src/db/dbLock.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/db/dbLock.c b/src/db/dbLock.c index 6a2379d4c..cc64aaca8 100644 --- a/src/db/dbLock.c +++ b/src/db/dbLock.c @@ -310,7 +310,7 @@ void epicsShareAPI dbScanUnlock(dbCommon *precord) plockSet->precord = 0; if((plockSet->state == lockSetStateScanLock) && (plockSet->nWaiting==0)) plockSet->state = lockSetStateFree; - epicsMutexUnlock(plockRecord->plockSet->lock); + epicsMutexUnlock(plockSet->lock); } epicsMutexUnlock(lockSetModifyLock); return; @@ -564,13 +564,14 @@ long epicsShareAPI dbLockShowLocked(int level) int indListType; lockSet *plockSet; epicsMutexLockStatus status; + epicsMutexLockStatus lockSetModifyLockStatus; printf("listTypeScanLock %d listTypeRecordLock %d listTypeFree %d\n", ellCount(&lockSetList[0]), ellCount(&lockSetList[1]), ellCount(&lockSetList[2])); - status = epicsMutexLockWithTimeout(lockSetModifyLock,.5); - if(status!=epicsMutexLockOK) { + lockSetModifyLockStatus = epicsMutexLockWithTimeout(lockSetModifyLock,5.0); + if(lockSetModifyLockStatus!=epicsMutexLockOK) { printf("Could not lock lockSetModifyLock\n"); epicsMutexShow(lockSetModifyLock,level); } @@ -604,6 +605,7 @@ long epicsShareAPI dbLockShowLocked(int level) plockSet = (lockSet *)ellNext(&plockSet->node); } } - if(status!=epicsMutexLockOK) epicsMutexUnlock(lockSetModifyLock); + if(lockSetModifyLockStatus==epicsMutexLockOK) + epicsMutexUnlock(lockSetModifyLock); return(0); }