diff options
| author | Jason Evans <jasone@FreeBSD.org> | 2000-01-27 23:07:25 +0000 |
|---|---|---|
| committer | Jason Evans <jasone@FreeBSD.org> | 2000-01-27 23:07:25 +0000 |
| commit | 9233c4d9426e03b28e043baeefb6d5a37dc4086e (patch) | |
| tree | 8606358bf2ae9c436cce380d290e7a73f9cddfc6 /lib/libpthread/thread/thr_cond.c | |
| parent | 072229cdbb757229b7e11f102da326679db27d0e (diff) | |
Notes
Diffstat (limited to 'lib/libpthread/thread/thr_cond.c')
| -rw-r--r-- | lib/libpthread/thread/thr_cond.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/lib/libpthread/thread/thr_cond.c b/lib/libpthread/thread/thr_cond.c index ced48e3b603c..d23660788fc9 100644 --- a/lib/libpthread/thread/thr_cond.c +++ b/lib/libpthread/thread/thr_cond.c @@ -160,6 +160,8 @@ pthread_cond_wait(pthread_cond_t * cond, pthread_mutex_t * mutex) int rval = 0; int interrupted = 0; + _thread_enter_cancellation_point(); + if (cond == NULL) rval = EINVAL; @@ -286,6 +288,8 @@ pthread_cond_wait(pthread_cond_t * cond, pthread_mutex_t * mutex) _thread_leave_cancellation_point(); } + _thread_leave_cancellation_point(); + /* Return the completion status: */ return (rval); } @@ -297,12 +301,15 @@ pthread_cond_timedwait(pthread_cond_t * cond, pthread_mutex_t * mutex, int rval = 0; int interrupted = 0; + _thread_enter_cancellation_point(); + if (cond == NULL || abstime == NULL) rval = EINVAL; if (abstime->tv_sec < 0 || abstime->tv_nsec < 0 || abstime->tv_nsec >= 1000000000) { errno = EINVAL; + _thread_leave_cancellation_point(); return (-1); } @@ -448,6 +455,8 @@ pthread_cond_timedwait(pthread_cond_t * cond, pthread_mutex_t * mutex, _thread_leave_cancellation_point(); } + _thread_leave_cancellation_point(); + /* Return the completion status: */ return (rval); } |
