From c503a03f37755ac884774b66da5124aa8426ca3b Mon Sep 17 00:00:00 2001 From: Andrew Johnson Date: Mon, 15 Nov 2010 15:46:40 -0600 Subject: [PATCH] libCom/errlog: Clean up possible problem at shutdown. Don't use epicsMutexMustLock() in msgbufGetFree(). When we're shutting down, the pvtData.msgQueueLock gets destroyed. This makes msgbufGetFree() return NULL if the lock is dead. The epicsMutexMustLock() routine asserts(), which recurses... --- src/libCom/error/errlog.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/libCom/error/errlog.c b/src/libCom/error/errlog.c index 17ece31ae..49e743c6d 100644 --- a/src/libCom/error/errlog.c +++ b/src/libCom/error/errlog.c @@ -552,7 +552,9 @@ static char *msgbufGetFree(int noConsoleMessage) { msgNode *pnextSend; - epicsMutexMustLock(pvtData.msgQueueLock); + if (epicsMutexLock(pvtData.msgQueueLock) != epicsMutexLockOK) + return 0; + if ((ellCount(&pvtData.msgQueue) == 0) && pvtData.missedMessages) { int nchar;