Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 3 Jul 1999 10:44:12 -0500
From:      Jonathan Lemon <jlemon@americantv.com>
To:        "Brian F. Feldman" <green@unixhelp.org>
Cc:        wayne@crb-web.com, hackers@FreeBSD.ORG
Subject:   Re: poll() vs select()
Message-ID:  <19990703104412.48991@right.PCS>
In-Reply-To: <Pine.BSF.4.10.9907031122480.34349-100000@janus.syracuse.net>; from Brian F. Feldman on Jul 07, 1999 at 11:27:57AM -0400
References:  <19990703083935.61252@right.PCS> <Pine.BSF.4.10.9907031122480.34349-100000@janus.syracuse.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On Jul 07, 1999 at 11:27:57AM -0400, Brian F. Feldman wrote:
> On Sat, 3 Jul 1999, Jonathan Lemon wrote:
> 
> > On Jul 07, 1999 at 01:01:07AM -0400, Brian F. Feldman wrote:
> > > On Fri, 2 Jul 1999, Jonathan Lemon wrote:
> > 
> > > > As for new code, use whichever you are comfortable with.  Personally, I
> > > > would recommend poll(), since it provides some added functionality over
> > > > select() that makes for easier programming.
> > > 
> > > poll() is a huge pain to use, which is why I recommend select().
> > 
> > Whichever you're comfortable with.  poll() isn't a pain once you know
> > how to use it, and it does bring additional benefits.
> 
> I don't see how you can not find poll() a pain when compared to select(). It
> requires so much set-up, much like (for instance) aio_write() as opposed to
> write(). I suppose if you're masochistic, you won't mind doing that :)

Yes, it does require more initial setup.  But consider:

    - you don't have to re-initialize the fd sets every time around the
      loop, as you do with select().  This administrative overhead is 
      moved into the initial setup, not into the main loop.

    - it becomes simple to ignore a slot entry; simply set the fd value to -1.

    - you get notification when the fd is closed.  E.g.: you can poll()
      on a fd, ignoring both read ready and write ready state, and get
      POLLHUP returned when it closes.  for select(), the only way to
      know that the fd closed is to actually do a read() on the descriptor,
      and have it return EOF.

--
Jonathan


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




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