Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 10 Oct 2009 09:39:38 -0400
From:      Justin Hibbits <jrh29@alumni.cwru.edu>
To:        FreeBSD Current <freebsd-current@freebsd.org>
Subject:   Fwd: Signals and an exiting thread
Message-ID:  <fd9cd3450910100639m7fd25ab3xad705452c4d4798e@mail.gmail.com>
In-Reply-To: <fd9cd3450910100638v6f361e9dscdc0ae4e255881b8@mail.gmail.com>
References:  <c47019cc0909301102y189a0b8aq47d23efae549f4ab@mail.gmail.com> <20091001120730.GR3130@deviant.kiev.zoral.com.ua> <20091002201213.GA16633@stack.nl> <20091005192144.GA2259@deviant.kiev.zoral.com.ua> <4AD01ABC.50901@freebsd.org> <fd9cd3450910100638v6f361e9dscdc0ae4e255881b8@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
I really need to change gmail to reply to all by default.

---------- Forwarded message ----------
From: Justin Hibbits <jrh29@alumni.cwru.edu>
Date: Sat, Oct 10, 2009 at 9:38 AM
Subject: Re: Signals and an exiting thread
To: David Xu <davidxu@freebsd.org>


On Sat, Oct 10, 2009 at 1:25 AM, David Xu <davidxu@freebsd.org> wrote:

> Kostik Belousov wrote:
>
>  I agree that postponing assignment of the thread for signal delivery
>> till the actual delivery occurs is the proper fix. I tried to cheat
>> in my previous patch. Below is an experimental change that did very
>> minimal testing.
>> <snip>
>>
>
> Even if the signal is put into process's signal queue, it is still
> possible that signal notification is lost because selected thread
> exits before seeing it, if other threads are sleeping, they are
> not notified, this leaves signal in process queue long time before
> it can be delivered to userland.


Unless they're in an uninterruptible sleep, wouldn't they be woken when the
signal is processed?  It might need work to give a second pass over the
threads after one dies, but I think that could be done when handling the
next task schedule.

- Justin



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?fd9cd3450910100639m7fd25ab3xad705452c4d4798e>