From 6ef52b5d037cb8db8a88af031a9e7a6e318169da Mon Sep 17 00:00:00 2001 From: Jeff Hill Date: Thu, 10 Nov 2011 17:34:47 -0700 Subject: [PATCH] fixed launchpad bug 697509, Thread synchronization issue in libCom/osi/os/WIN32/osdTime.cpp --- src/libCom/osi/os/WIN32/osdTime.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/libCom/osi/os/WIN32/osdTime.cpp b/src/libCom/osi/os/WIN32/osdTime.cpp index cd05f2362..d69c4f157 100644 --- a/src/libCom/osi/os/WIN32/osdTime.cpp +++ b/src/libCom/osi/os/WIN32/osdTime.cpp @@ -395,6 +395,8 @@ void currentTime::getCurrentTime ( epicsTimeStamp & dest ) // epicsTimerNotify::expireStatus currentTime::expire ( const epicsTime & ) { + EnterCriticalSection ( & this->mutex ); + // avoid interruptions by briefly becoming a time critical thread LARGE_INTEGER curFileTime; LARGE_INTEGER curPerfCounter; @@ -410,8 +412,6 @@ epicsTimerNotify::expireStatus currentTime::expire ( const epicsTime & ) curFileTime.HighPart = ft.dwHighDateTime; } - EnterCriticalSection ( & this->mutex ); - LONGLONG perfCounterDiff; if ( curPerfCounter.QuadPart >= this->lastPerfCounterPLL ) { perfCounterDiff = curPerfCounter.QuadPart - this->lastPerfCounterPLL;