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 majord...@freebsd.org with "unsubscribe freebsd-hackers" in the body of the message