Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 22 May 2007 23:00:26 -0400 (EDT)
From:      "M. Warner Losh" <imp@bsdimp.com>
To:        peterjeremy@optushome.com.au
Cc:        des@des.no, antinvidia@gmail.com, freebsd-arch@freebsd.org
Subject:   Re: A problem with the select(2) interface
Message-ID:  <20070522.230026.1611667537.imp@bsdimp.com>
In-Reply-To: <20070517094445.GD1149@turion.vk2pj.dyndns.org>
References:  <be0088ce0705160559y4c312c7aqcc45cdd81f8f0323@mail.gmail.com> <86fy5wkim5.fsf@dwp.des.no> <20070517094445.GD1149@turion.vk2pj.dyndns.org>

next in thread | previous in thread | raw e-mail | index | archive | help
In message: <20070517094445.GD1149@turion.vk2pj.dyndns.org>
            Peter Jeremy <peterjeremy@optushome.com.au> writes:
: On 2007-May-16 15:23:14 +0200, Dag-Erling Smrgrav <des@des.no> wrote:
: >MQ <antinvidia@gmail.com> writes:
: >> No, that is not what I want. I think we'd better add a comments that
: >> we *DO NOT WRITE TO THAT ADDRESS*, what the manual describes is that
: >> there may be some platforms which write to that address. It's not the
: >> same thing.
: >
: >Some platforms update the timeval and some don't, so portable
: >applications must simply assume that its contents are undefined after
: >the select(2) call.  It can not be relied on to contain either the
: >initial value nor the amount of time remaining.  Thus your proposed
: >change is pointless.
: 
: I disagree.  The FreeBSD man pages should document the behaviour of
: FreeBSD.  It's all very nice stating that SUSv2 allows a system to
: modify the value passed as timeout but (IMNSHO), it is more important
: to document what FreeBSD actually does.
: 
: I agree that a _portable_ application must assume that timeout will
: be undefined but that's no reason for refusing to document what
: FreeBSD's behaviour actually is.
: 
: There are two situations where the actual behaviour matters:
: 1) Porting a random application that assumes specific behaviour for
:    select().  I need to know how FreeBSD behaves to know whether I
:    need to patch the code or not.
: 2) I'm writing code that is specifically for FreeBSD.  If I know
:    timeout will not change, I can optimise the code to avoid having to
:    re-initialise timeout before each select call.

Index: select.2
===================================================================
RCS file: /cache/ncvs/src/lib/libc/sys/select.2,v
retrieving revision 1.33
diff -u -r1.33 select.2
--- select.2	9 Jan 2007 00:28:15 -0000	1.33
+++ select.2	23 May 2007 03:00:14 -0000
@@ -222,3 +222,6 @@
 by the
 .Fn select
 system call.
+.Fx 
+does not modify the return value, which can cause problems for applications
+ported from other systems.



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