Date: Sun, 29 Mar 2015 19:22:07 +0200 From: Jilles Tjoelker <jilles@stack.nl> To: Konstantin Belousov <kostikbel@gmail.com> Cc: freebsd-hackers@FreeBSD.org, Ivan Radovanovic <radovanovic@gmail.com> Subject: Re: kevent behavior Message-ID: <20150329172207.GC95224@stack.nl> In-Reply-To: <20150329160338.GZ2379@kib.kiev.ua> References: <550A6DA2.1070004@gmail.com> <20150324221541.GA67584@stack.nl> <20150325090041.GY2379@kib.kiev.ua> <20150325223530.GA79065@stack.nl> <20150326214551.GG2379@kib.kiev.ua> <20150326225826.GA97319@stack.nl> <20150327132654.GJ2379@kib.kiev.ua> <20150329150316.GB95224@stack.nl> <20150329160338.GZ2379@kib.kiev.ua>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, Mar 29, 2015 at 07:03:38PM +0300, Konstantin Belousov wrote: > On Sun, Mar 29, 2015 at 05:03:16PM +0200, Jilles Tjoelker wrote: > > On Fri, Mar 27, 2015 at 03:26:54PM +0200, Konstantin Belousov wrote: > > > +Otherwise, i.e. if > > > +.Fa nevents > > > +is zero, the call is not cancellable. > > > > > +Cancellation can only occur when the call was blocked and no changes > > > +to the queue were requested. > > > > This is not how the code works, but I think the code is correct. The > > code also allows cancellation before anything happens. As such, if > > cancellation occurs at kevent(2), the kqueue's state is unchanged (from > > that call). > Below is only a new diff for the man pages changes. I found our list > of the cancellation points in the pthread_testcancel(3), but did not > checked it for correctness. Given that the special case for fcntl() is mentioned in pthread_testcancel(3) (only a cancellation point if cmd is F_SETLKW), the same should be done for kevent(). Looks good to me otherwise. -- Jilles Tjoelker
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20150329172207.GC95224>