cvs commit: src/sys/kern kern_fork.c
davidxu at FreeBSD.org
Wed Oct 24 18:34:05 PDT 2007
Julian Elischer wrote:
> julian 2007-10-23 17:54:16 UTC
> FreeBSD src repository
> Modified files:
> sys/kern kern_fork.c
> Take out the single-threading code in fork.
> After discussions with jeff, alc, (various Ironport people), david Xu,
> and mostly Alfred (who found the problem) it has been demonstrated that this
> is not needed for our implementations of threads and represents a real
> (as in we've seen it happen a lot) deadlock danger.
I think if process is forking a thread, that says flag RFPROC is not
set and flags RFCFDG or RFCFDG is set, you still need to call
thread_single(SINGLE_BOUNDARY), otherwise, for a threaded process,
the memory pointed by p_fd is freed while other threads are using it,
it will cause kernel to panic.
More information about the cvs-src