From e8f8484fa9721cd8d929e630dbcb584ad4ff091b Mon Sep 17 00:00:00 2001 From: rpj Date: Tue, 3 Jul 2001 06:01:01 +0000 Subject: Undo a minor code change in condvar.c and insert comments in instead. --- condvar.c | 18 +++++++++++++++--- semaphore.c | 6 +++--- 2 files changed, 18 insertions(+), 6 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; diff --git a/semaphore.c b/semaphore.c index ee9c8f6..f2210d4 100644 --- a/semaphore.c +++ b/semaphore.c @@ -475,7 +475,7 @@ sem_post_multiple (sem_t * sem, int count ) * pointer to an instance of sem_t * * count - * counter, must be greater than or equal to zero. + * counter, must be greater than zero. * * DESCRIPTION * This function posts multiple wakeups to a semaphore. If there @@ -487,14 +487,14 @@ sem_post_multiple (sem_t * sem, int count ) * -1 failed, error in errno * ERRNO * EINVAL 'sem' is not a valid semaphore - * or count is not greater than zero. + * or count is less than or equal to zero. * * ------------------------------------------------------ */ { int result = 0; - if (sem == NULL || *sem == NULL || count < 0) + if (sem == NULL || *sem == NULL || count <= 0) { result = EINVAL; } -- cgit v1.2.3