diff options
author | davidxu <davidxu@FreeBSD.org> | 2006-12-06 00:15:35 +0000 |
---|---|---|
committer | davidxu <davidxu@FreeBSD.org> | 2006-12-06 00:15:35 +0000 |
commit | 33168bd24ffd78e23b6998840346643a6cfe3a3f (patch) | |
tree | 8bc3a84ac90c69078b789b88f160be647bca7b57 /lib/libthr/thread | |
parent | bdbe991e7ca45c8fb7142021d1859ee37ffe20e7 (diff) | |
download | FreeBSD-src-33168bd24ffd78e23b6998840346643a6cfe3a3f.zip FreeBSD-src-33168bd24ffd78e23b6998840346643a6cfe3a3f.tar.gz |
test cancel_pending to save a thr_wake call in some specical cases.
Diffstat (limited to 'lib/libthr/thread')
-rw-r--r-- | lib/libthr/thread/thr_sig.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/libthr/thread/thr_sig.c b/lib/libthr/thread/thr_sig.c index 4f2bddd..1be544b 100644 --- a/lib/libthr/thread/thr_sig.c +++ b/lib/libthr/thread/thr_sig.c @@ -61,7 +61,7 @@ sigcancel_handler(int sig __unused, { struct pthread *curthread = _get_curthread(); - if (curthread->cancel_defer) + if (curthread->cancel_defer && curthread->cancel_pending) thr_wake(curthread->tid); _thr_ast(curthread); } |