Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 22 May 1996 11:01:03 -0600
From:      Warner Losh <imp@village.org>
To:        Kees Jan Koster <dutchman@spase.nl>
Cc:        freebsd-hackers@FreeBSD.ORG (FreeBSD hackers Mailing list)
Subject:   Re: Forgiving select() call. 
Message-ID:  <199605221701.LAA04803@rover.village.org>
In-Reply-To: Your message of Wed, 22 May 1996 15:02:14 %2B0200

next in thread | raw e-mail | index | archive | help
: I want to modify select(2) to return the `timeout left' as described in the
: BUGS section of the manual page. Any reason why I should not?

That is *********NOT******* how select works.  Too many programs do
not do the right thing when this is done.  The failure mode is that
things seem to work but you have no CPU left for other thigns.  Ths is
a *VERY*BAD* idea.  Linux tried it and now they have bsd compatible
select behavior unless you go our of your way to get the behavior you
propose.  Why?  Too many programs were eating the CPU for lunch
because they were poorly programmed.  And there were too many to
easily fix all of them.  Linux is the *ONLY* system that changes the
timeval in the select call.

It is a bad idea.  If it had been a good idea, then Lite or Lite2
would have had it changed.  The bug in the man page is really a bug
with the man page by now, imho.

If you want to have a system call that returns this information, don't
call it select.

All that said, people should write code that doesn't assume that
timeval will be const in this call.

Warner



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