diff options
author | davidxu <davidxu@FreeBSD.org> | 2003-12-09 02:20:56 +0000 |
---|---|---|
committer | davidxu <davidxu@FreeBSD.org> | 2003-12-09 02:20:56 +0000 |
commit | 22c52834eb703c132b4e7c6bd591610f1129d32d (patch) | |
tree | 336614966b1df2677098ac89ea3a03fc82f7141b /lib/libkse/thread/thr_cond.c | |
parent | 84e2c4c55b82cc4f62ab90c4141beffce4e30412 (diff) | |
download | FreeBSD-src-22c52834eb703c132b4e7c6bd591610f1129d32d.zip FreeBSD-src-22c52834eb703c132b4e7c6bd591610f1129d32d.tar.gz |
Rename _thr_enter_cancellation_point to _thr_cancel_enter, rename
_thr_leave_cancellation_point to _thr_cancel_leave, add a parameter
to _thr_cancel_leave to indicate whether cancellation point should be
checked, this gives us an option to not check cancallation point if
a syscall successfully returns to avoid any leaks, current I have
creat(), open() and fcntl(F_DUPFD) to not check cancellation point
after they sucessfully returned.
Replace some members in structure kse with bit flags to same some
memory.
Conditionally compile THR_ASSERT to nothing if _PTHREAD_INVARIANTS is
not defined.
Inline some small functions in thr_cancel.c.
Use __predict_false in thr_kern.c for some executed only once code.
Reviewd by: deischen
Diffstat (limited to 'lib/libkse/thread/thr_cond.c')
-rw-r--r-- | lib/libkse/thread/thr_cond.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/lib/libkse/thread/thr_cond.c b/lib/libkse/thread/thr_cond.c index a1df0bd..fd7b6d9 100644 --- a/lib/libkse/thread/thr_cond.c +++ b/lib/libkse/thread/thr_cond.c @@ -365,9 +365,9 @@ __pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex) struct pthread *curthread = _get_curthread(); int ret; - _thr_enter_cancellation_point(curthread); + _thr_cancel_enter(curthread); ret = _pthread_cond_wait(cond, mutex); - _thr_leave_cancellation_point(curthread); + _thr_cancel_leave(curthread, 1); return (ret); } @@ -571,9 +571,9 @@ __pthread_cond_timedwait(pthread_cond_t *cond, pthread_mutex_t *mutex, struct pthread *curthread = _get_curthread(); int ret; - _thr_enter_cancellation_point(curthread); + _thr_cancel_enter(curthread); ret = _pthread_cond_timedwait(cond, mutex, abstime); - _thr_leave_cancellation_point(curthread); + _thr_cancel_leave(curthread, 1); return (ret); } |