From dff447028ff8e29461d4f85120fdd43b1f5d2701 Mon Sep 17 00:00:00 2001 From: Jeff Hill Date: Sat, 27 Sep 2008 01:37:01 +0000 Subject: [PATCH] improved fix for mantis 316 --- src/libCom/misc/ipAddrToAsciiAsynchronous.cpp | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/libCom/misc/ipAddrToAsciiAsynchronous.cpp b/src/libCom/misc/ipAddrToAsciiAsynchronous.cpp index e7a7b2f8e..91d0e28ef 100644 --- a/src/libCom/misc/ipAddrToAsciiAsynchronous.cpp +++ b/src/libCom/misc/ipAddrToAsciiAsynchronous.cpp @@ -140,10 +140,15 @@ ipAddrToAsciiEngine::~ipAddrToAsciiEngine () {} static void ipAddrToAsciiEngineShutdownRequest ( void * ) { - epicsGuard < epicsMutex > - guard ( * ipAddrToAsciiEnginePrivate :: pGlobalMutex ); - ipAddrToAsciiEnginePrivate :: shutdownRequest = true; - if ( ipAddrToAsciiEnginePrivate :: numberOfReferences == 0u ) { + bool deleteGlobalMutexCondDetected = false; + { + epicsGuard < epicsMutex > + guard ( * ipAddrToAsciiEnginePrivate :: pGlobalMutex ); + ipAddrToAsciiEnginePrivate :: shutdownRequest = true; + deleteGlobalMutexCondDetected = + ( ipAddrToAsciiEnginePrivate :: numberOfReferences == 0 ); + } + if ( deleteGlobalMutexCondDetected ) { delete ipAddrToAsciiEnginePrivate :: pGlobalMutex; ipAddrToAsciiEnginePrivate :: pEngine = 0; }