Abolishing sleeps in issignal()

Jeff Roberson jroberson at chesapeake.net
Mon Oct 8 16:04:05 PDT 2007


On Mon, 8 Oct 2007, Alfred Perlstein wrote:

> * Jeff Roberson <jroberson at chesapeake.net> [071008 14:39] wrote:
>>
>> What I'd like from readers on arch@ is for you to consider if there are
>> other cases than non-restartable syscalls that will break if
>> msleep/sleepqs return EINTR from SIGSTOP and debug events.  Also, is there
>> an authoritative list of non-restartable syscalls anywhere?  It's just
>> those involving timevals right?  nanosleep/poll/select/kqueue.. others?
>>
>> I intend to do this work for 8.0 and hopefully very early on so we have
>> plenty of time to shake out bugs as this signal code tends to be very
>> delicate.
>>
>
> Is there precident for this work from other OSes, Linux, Solaris
> that shows moving to this model works?

I forgot to mention that.  These two both use this model.  Linux sets up
a complicated syscall restart state so that the normal syscal restart 
mechanism can be used.  I didn't fully understand what solaris does but 
they don't sleep in issignal.  They do it later as well.

Jeff.

>
> -- 
> - Alfred Perlstein
>


More information about the freebsd-arch mailing list