Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 5 Feb 2001 19:35:07 -0600
From:      Jonathan Lemon <jlemon@flugsvamp.com>
To:        Jonathan Graehl <jonathan@graehl.org>
Cc:        Alfred Perlstein <bright@wintelcom.net>, freebsd-arch@freebsd.org, Jonathan Lemon <jlemon@freebsd.org>
Subject:   Re: nonblocking sockets and EINTR (kevent does not observe SA_RESTART?)
Message-ID:  <20010205193507.J650@prism.flugsvamp.com>
In-Reply-To: <NCBBLOALCKKINBNNEDDLGEFPDKAA.jonathan@graehl.org>
References:  <20010205154842.J26076@fw.wintelcom.net> <NCBBLOALCKKINBNNEDDLGEFPDKAA.jonathan@graehl.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Feb 05, 2001 at 05:16:56PM -0800, Jonathan Graehl wrote:
> > You can specify that syscalls will or won't be automatically
> > restarted via the sigaction() API.
> >
> > --
> > -Alfred Perlstein - [bright@wintelcom.net|alfred@freebsd.org]
> 
> Thank you for reminding me of this (and making me feel like my question could
> have been better directed at -questions, if it is so trivially answered ;)
> 
> I am using sigaction with SA_RESTART, and I still get EINTR from my kevent call
> (no matter, this is easily dealt with, due to the straightforward kevent
> semantics).  I assume that SA_RESTART then only applies to the traditional
> syscalls (read/write,send/recv), and that this may be an oversight in the kqueue
> implementation, at least meriting a warning in the man page

The difficulty in restarting the kevent call is that it would have
to re-apply the changelist, which is probably not what you want.  The
only case where it is possible to perform a restart is with an empty
changelist.  I didn't put this optimization in, as I think it would be
better if the interface was consistent in all cases.
--
Jonathan


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-arch" in the body of the message




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