diff options
author | rpj <rpj> | 2006-12-22 02:36:40 +0000 |
---|---|---|
committer | rpj <rpj> | 2006-12-22 02:36:40 +0000 |
commit | 9e61bc0571b4812381cf89dd6f4bcbe3931f6acd (patch) | |
tree | 2b60eec9340369ed259a9d1de422ac5ec3eb9291 /sem_post_multiple.c | |
parent | 1beb00e609d241ee6c2048c476e2240f05033cbd (diff) |
Diffstat (limited to 'sem_post_multiple.c')
-rw-r--r-- | sem_post_multiple.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/sem_post_multiple.c b/sem_post_multiple.c index fa950bd..3d1e4ef 100644 --- a/sem_post_multiple.c +++ b/sem_post_multiple.c @@ -86,6 +86,15 @@ sem_post_multiple (sem_t * sem, int count) } else if ((result = pthread_mutex_lock (&s->lock)) == 0) { + /* See sem_destroy.c + */ + if (*sem == NULL) + { + (void) pthread_mutex_unlock (&s->lock); + result = EINVAL; + return -1; + } + if (s->value <= (SEM_VALUE_MAX - count)) { waiters = -s->value; |