From 916038e13a36c176f96c2b73610692298dcc1b03 Mon Sep 17 00:00:00 2001 From: Jeff Hill Date: Thu, 26 Aug 2004 23:36:05 +0000 Subject: [PATCH] fixed holding lock while suspended in epicsThreadSuspendSelf() --- src/libCom/osi/os/WIN32/osdThread.c | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/src/libCom/osi/os/WIN32/osdThread.c b/src/libCom/osi/os/WIN32/osdThread.c index 93fd7c816..3e3984d02 100644 --- a/src/libCom/osi/os/WIN32/osdThread.c +++ b/src/libCom/osi/os/WIN32/osdThread.c @@ -568,20 +568,13 @@ epicsShareFunc void epicsShareAPI epicsThreadSuspendSelf () TlsGetValue ( pGbl->tlsIndexThreadLibraryEPICS ); if ( ! pParm ) { pParm = epicsThreadImplicitCreate (); - if ( ! pParm ) { - stat = SuspendThread ( GetCurrentThread () ); - assert ( stat != 0xFFFFFFFF ); - return; - } } - - EnterCriticalSection ( & pGbl->mutex ); - - stat = SuspendThread ( pParm->handle ); - pParm->isSuspended = 1; - - LeaveCriticalSection ( & pGbl->mutex ); - + if ( pParm ) { + EnterCriticalSection ( & pGbl->mutex ); + pParm->isSuspended = 1; + LeaveCriticalSection ( & pGbl->mutex ); + } + stat = SuspendThread ( GetCurrentThread () ); assert ( stat != 0xFFFFFFFF ); }