Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 13 Oct 2003 09:37:59 -0700 (PDT)
From:      John Polstra <jdp@polstra.com>
To:        John-Mark Gurney <jmg@freebsd.org>
Cc:        freebsd-bugs@freebsd.org
Subject:   Re: kern/45291: kevent(2) ignores timeout if nevents == 0
Message-ID:  <XFMail.20031013093759.jdp@polstra.com>
In-Reply-To: <200310130749.h9D7nWF9038579@freefall.freebsd.org>

index | next in thread | previous in thread | raw e-mail

On 13-Oct-2003 John-Mark Gurney wrote:
> Synopsis: kevent(2) ignores timeout if nevents == 0
> 
> State-Changed-From-To: open->feedback
> State-Changed-By: jmg
> State-Changed-When: Mon Oct 13 00:46:53 PDT 2003
> State-Changed-Why: 
> to quote the man page: If timeout is a non-NULL pointer, it specifies
> a maximum interval to wait for an event,
> 
> The behavior is correct since you wanted to wait for 0 events, and since
> it has delivered all the events it can (none), it returns.  Unless provide
> with good reason (or maybe a patch to the manpage to document this feature?)
> I will close the PR in 5 days.

I disagree.  The current behavior is not correct.  It is inconsistent
with the longstanding behavior of both poll() and select().  Also,
from a practical standpoint, returning immediately instead of
waiting for the timeout to expire makes writing a typical event loop
more awkward.  It requires the addition of a special case in the
application code to deal with the situation where no events are being
awaited.  That's not necessary when using poll() or select().

John


home | help

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