Date: Tue, 28 May 1996 14:31:52 +0000 From: Matt Thomas <matt@lkg.dec.com> To: hackers@freefall.FreeBSD.org, chat@freebsd.com, terry@lambert.org, "Kaleb S. KEITHLEY" <kaleb@x.org> Subject: Re: Forgiving select() call. Message-ID: <199605281431.OAA18898@whydos.lkg.dec.com> In-Reply-To: Your message of "Tue, 28 May 1996 07:18:48 EST." <199605281118.HAA17563@exalt.x.org>
next in thread | previous in thread | raw e-mail | index | archive | help
In <199605281118.HAA17563@exalt.x.org> , you wrote: Since Kaleb mentioned Digital UNIX as one O/S that implements poll, I though it might be useful to elaborate on that a bit. Digital UNIX has both the poll(2) and select(2) system calls. Both are syscalls in fact. However, since poll has more functionality that select the kernel infrastructure is build around poll rather than select. The select kernel code actually calls poll code in side the kernel. Internally, the kernel uses a timeval; poll's ms timeout gets converted to a timeval. When the _select routine (like soo_select) gets called, instead of int soo_select(struct file *fp, int which, struct proc *p) as in BSD4.4, it gets defined as int soo_select(struct file *fp, int *events, int *revents, int scanning) and the code uses the *events to set the appropriate bits in *revents. -- Matt Thomas Internet: matt@3am-software.com 3am Software Foundry WWW URL: http://www.3am-software.com/bio/matt.html Westford, MA Disclaimer: I disavow all knowledge of this message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199605281431.OAA18898>