aboutsummaryrefslogtreecommitdiff
path: root/lib/libthr
diff options
context:
space:
mode:
authorBrian Feldman <green@FreeBSD.org>2009-05-11 16:45:53 +0000
committerBrian Feldman <green@FreeBSD.org>2009-05-11 16:45:53 +0000
commit43af51a2b5e92a4b4a9f345800a929e0dc438737 (patch)
tree16695c53706523c6eed39491dbb2b6a2d2eeac16 /lib/libthr
parent22d7ae67d4ea971ca297b7f62036bf4552973952 (diff)
downloadsrc-43af51a2b5e92a4b4a9f345800a929e0dc438737.tar.gz
src-43af51a2b5e92a4b4a9f345800a929e0dc438737.zip
These are some cosmetic changes to improve the clarity of libthr's fork implementation.
Notes
Notes: svn path=/head/; revision=191993
Diffstat (limited to 'lib/libthr')
-rw-r--r--lib/libthr/thread/thr_fork.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/lib/libthr/thread/thr_fork.c b/lib/libthr/thread/thr_fork.c
index afb5a1db19df..529f38f7c356 100644
--- a/lib/libthr/thread/thr_fork.c
+++ b/lib/libthr/thread/thr_fork.c
@@ -105,7 +105,7 @@ _fork(void)
struct pthread_atfork *af;
pid_t ret;
int errsave;
- int unlock_malloc;
+ int was_threaded;
int rtld_locks[MAX_RTLD_LOCKS];
if (!_thr_is_inited())
@@ -122,16 +122,16 @@ _fork(void)
}
/*
- * Try our best to protect memory from being corrupted in
- * child process because another thread in malloc code will
- * simply be kill by fork().
+ * All bets are off as to what should happen soon if the parent
+ * process was not so kindly as to set up pthread fork hooks to
+ * relinquish all running threads.
*/
if (_thr_isthreaded() != 0) {
- unlock_malloc = 1;
+ was_threaded = 1;
_malloc_prefork();
_rtld_atfork_pre(rtld_locks);
} else {
- unlock_malloc = 0;
+ was_threaded = 0;
}
/*
@@ -159,7 +159,7 @@ _fork(void)
_thr_umutex_init(&curthread->lock);
_thr_umutex_init(&_thr_atfork_lock);
- if (unlock_malloc)
+ if (was_threaded)
_rtld_atfork_post(rtld_locks);
_thr_setthreaded(0);
@@ -173,7 +173,7 @@ _fork(void)
/* Ready to continue, unblock signals. */
_thr_signal_unblock(curthread);
- if (unlock_malloc) {
+ if (was_threaded) {
__isthreaded = 1;
_malloc_postfork();
__isthreaded = 0;
@@ -191,7 +191,7 @@ _fork(void)
/* Ready to continue, unblock signals. */
_thr_signal_unblock(curthread);
- if (unlock_malloc) {
+ if (was_threaded) {
_rtld_atfork_post(rtld_locks);
_malloc_postfork();
}