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>