* David Xu <[EMAIL PROTECTED]> [071024 18:34] wrote: > Julian Elischer wrote: > >julian 2007-10-23 17:54:16 UTC > > > > FreeBSD src repository > > > > Modified files: > > sys/kern kern_fork.c > > Log: > > 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.
This is unlikely to be fixed by SINGLE_BOUNDARY and will likely require refcounting to fix. SINGLE_BOUNDARY will not fix the locations where this happens: p = td->td_proc; fdp = p->p_fd; do something that blocks... re-use fdp. -- - Alfred Perlstein _______________________________________________ cvs-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/cvs-all To unsubscribe, send any mail to "[EMAIL PROTECTED]"