summaryrefslogtreecommitdiff
path: root/condvar.c
diff options
context:
space:
mode:
authorrpj <rpj>2001-07-03 06:01:01 +0000
committerrpj <rpj>2001-07-03 06:01:01 +0000
commite8f8484fa9721cd8d929e630dbcb584ad4ff091b (patch)
tree6f77a6a3c7486e8f5898701889aef8080a8b8d04 /condvar.c
parent663a1af0674c37774d310541e9b30c60316f2055 (diff)
Undo a minor code change in condvar.c and insert comments
in instead.
Diffstat (limited to 'condvar.c')
-rw-r--r--condvar.c18
1 files changed, 15 insertions, 3 deletions
diff --git a/condvar.c b/condvar.c
index 65d4e5f..57beefd 100644
--- a/condvar.c
+++ b/condvar.c
@@ -728,7 +728,11 @@ ptw32_cond_wait_cleanup(void * args)
if (sem_post( &(cv->semBlockLock) ) != 0)
{
*resultPtr = errno;
- (void) pthread_mutex_unlock( &(cv->mtxUnblockLock) );
+ /*
+ * This is a fatal error for this CV,
+ * so we deliberately don't unlock
+ * cv->mtxUnblockLock before returning.
+ */
return;
}
nSignalsWasLeft = 0;
@@ -744,14 +748,22 @@ ptw32_cond_wait_cleanup(void * args)
if (sem_wait( &(cv->semBlockLock) ) != 0)
{
*resultPtr = errno;
- (void) pthread_mutex_unlock( &(cv->mtxUnblockLock) );
+ /*
+ * This is a fatal error for this CV,
+ * so we deliberately don't unlock
+ * cv->mtxUnblockLock before returning.
+ */
return;
}
cv->nWaitersBlocked -= cv->nWaitersGone;
if (sem_post( &(cv->semBlockLock) ) != 0)
{
*resultPtr = errno;
- (void) pthread_mutex_unlock( &(cv->mtxUnblockLock) );
+ /*
+ * This is a fatal error for this CV,
+ * so we deliberately don't unlock
+ * cv->mtxUnblockLock before returning.
+ */
return;
}
cv->nWaitersGone = 0;