summaryrefslogtreecommitdiffstats
path: root/sys/kern
diff options
context:
space:
mode:
authorpeter <peter@FreeBSD.org>2004-03-14 01:48:32 +0000
committerpeter <peter@FreeBSD.org>2004-03-14 01:48:32 +0000
commit963c36c1956c741c098e14e7f7708ac1d78e187e (patch)
tree7ac4a7d805b1c5a44a91fd02d5e0ca6eed22834e /sys/kern
parent066f7934c61f7a02e91c3b9ce60a2985e9a4c11a (diff)
downloadFreeBSD-src-963c36c1956c741c098e14e7f7708ac1d78e187e.zip
FreeBSD-src-963c36c1956c741c098e14e7f7708ac1d78e187e.tar.gz
Move the process_fork event out from under Giant. This one is easy,
since there are no consumers in the tree. Document this.
Diffstat (limited to 'sys/kern')
-rw-r--r--sys/kern/kern_fork.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/kern/kern_fork.c b/sys/kern/kern_fork.c
index 03d12bb..bd17f05 100644
--- a/sys/kern/kern_fork.c
+++ b/sys/kern/kern_fork.c
@@ -689,14 +689,16 @@ again:
cnt.v_rforkpages += p2->p_vmspace->vm_dsize +
p2->p_vmspace->vm_ssize;
}
+ mtx_unlock(&Giant);
/*
* Both processes are set up, now check if any loadable modules want
* to adjust anything.
* What if they have an error? XXX
+ *
+ * Handlers must be MPSAFE, or aquire Giant themselves if not.
*/
EVENTHANDLER_INVOKE(process_fork, p1, p2, flags);
- mtx_unlock(&Giant);
/*
* Set the child start time and mark the process as being complete.
OpenPOWER on IntegriCloud