cvs commit: src/sys/kern kern_sig.c
John Baldwin
jhb at freebsd.org
Mon Oct 23 15:48:54 UTC 2006
On Friday 20 October 2006 20:58, David Xu wrote:
> On Saturday 21 October 2006 00:19, John Baldwin wrote:
> > jhb 2006-10-20 16:19:21 UTC
> >
> > FreeBSD src repository
> >
> > Modified files:
> > sys/kern kern_sig.c
> > Log:
> > Remove the check that prevented signals from being delivered to exiting
> > processes. It was originally added back when support for Linux threads
> > (and thus shared sigacts objects) was added, but no one knows why. My
> > guess is that at some point during the Linux threads patches, the
sigacts
> > object was torn down during exit1(), so this check was added to prevent
> > a panic for that race. However, the stuff that was actually committed
to
> > the tree doesn't teardown sigacts until wait() making the above race
> > moot. Re-allowing signals here lets one interrupt a NFS request during
> > process teardown (such as closing descriptors) on an interruptible mount.
> >
> > Requested by: kib (long time ago)
> > MFC after: 1 week
> >
> > Revision Changes Path
> > 1.333 +1 -3 src/sys/kern/kern_sig.c
> This commit opens a window that may cause memory leak, since we have
> signal queue in -CURRENT now, signal queue uses memory, before this
> change, the P_WEXIT will prevents new signal to be queued, after the
> flag is set in kern_exit, we call signqueue_flush to free memory. I think
> we should move sigqueue_flush down to a safe point where the
> PROC lock is no longer unlocked or move it to a place after p_state is set
> to PRS_ZOMBIE.
Or just free it during wait() when most other things about a process are
freed (sigacts, limits, etc.).
--
John Baldwin
More information about the cvs-src
mailing list