From owner-freebsd-hackers Tue May 28 12:07:09 1996 Return-Path: owner-hackers Received: (from root@localhost) by freefall.freebsd.org (8.7.5/8.7.3) id MAA21896 for hackers-outgoing; Tue, 28 May 1996 12:07:09 -0700 (PDT) Received: from who.cdrom.com (who.cdrom.com [204.216.27.3]) by freefall.freebsd.org (8.7.5/8.7.3) with SMTP id MAA21872 for ; Tue, 28 May 1996 12:07:07 -0700 (PDT) Received: from mail13.digital.com (mail13.digital.com [192.208.46.30]) by who.cdrom.com (8.6.12/8.6.11) with ESMTP id LAA07169 for ; Tue, 28 May 1996 11:40:39 -0700 Received: from muggsy.lkg.dec.com by mail13.digital.com (8.7.5/UNX 1.2/1.0/WV) id OAA29963; Tue, 28 May 1996 14:27:49 -0400 (EDT) Received: from whydos.lkg.dec.com by muggsy.lkg.dec.com (5.65/DEC-Ultrix/4.3) with SMTP id AA14929; Tue, 28 May 1996 14:27:16 -0400 Received: from localhost (localhost [127.0.0.1]) by whydos.lkg.dec.com (8.6.12/8.6.12) with SMTP id OAA18898; Tue, 28 May 1996 14:31:55 GMT Message-Id: <199605281431.OAA18898@whydos.lkg.dec.com> X-Authentication-Warning: whydos.lkg.dec.com: Host localhost didn't use HELO protocol X-Mailer: exmh version 1.6.5 12/11/95 To: hackers@freefall.FreeBSD.org, chat@freebsd.com, terry@lambert.org, "Kaleb S. KEITHLEY" Subject: Re: Forgiving select() call. In-Reply-To: Your message of "Tue, 28 May 1996 07:18:48 EST." <199605281118.HAA17563@exalt.x.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Tue, 28 May 1996 14:31:52 +0000 From: Matt Thomas Sender: owner-hackers@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk 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