summaryrefslogtreecommitdiffstats
path: root/lib/libthr/thread/thr_fork.c
diff options
context:
space:
mode:
authordavidxu <davidxu@FreeBSD.org>2010-09-24 07:52:07 +0000
committerdavidxu <davidxu@FreeBSD.org>2010-09-24 07:52:07 +0000
commit722a516400bd9a03211f28a90b2dd42b7dce5d0e (patch)
treecbbca5f7206c7ad83e07597815477b6c62599da9 /lib/libthr/thread/thr_fork.c
parentcc9d3a376dc5d0be14e05fa9543b5d21203c46ec (diff)
downloadFreeBSD-src-722a516400bd9a03211f28a90b2dd42b7dce5d0e.zip
FreeBSD-src-722a516400bd9a03211f28a90b2dd42b7dce5d0e.tar.gz
In most cases, cancel_point and cancel_async needn't be checked again,
because cancellation is almostly checked at cancellation points.
Diffstat (limited to 'lib/libthr/thread/thr_fork.c')
-rw-r--r--lib/libthr/thread/thr_fork.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/libthr/thread/thr_fork.c b/lib/libthr/thread/thr_fork.c
index fb5daa1..a1399bf 100644
--- a/lib/libthr/thread/thr_fork.c
+++ b/lib/libthr/thread/thr_fork.c
@@ -248,7 +248,8 @@ _fork(void)
_thr_rwlock_unlock(&_thr_atfork_lock);
curthread->no_cancel = cancelsave;
/* test async cancel */
- _thr_testcancel(curthread);
+ if (curthread->cancel_async)
+ _thr_testcancel(curthread);
}
errno = errsave;
OpenPOWER on IntegriCloud