kern/45291: kevent(2) ignores timeout if nevents == 0
Gregory Bond
gnb at itga.com.au
Sun Oct 19 17:45:41 PDT 2003
> They absolutely rely on this behavior of select. If anybody changed
> it they'd have a whole lot of broken programs on their hands. You may
> view it as a case of lazy programmers using the wrong system call for
> sleeping, but in fact it is just the proper and most sensible behavior
> for select to have at this boundary condition.
It's not just lazy either. Up to and including 4.2 BSD, the _only_ way to get
sub-second sleeps was to use select() with no FDs. SysV / AT&T varients
couldn't do it at all. nanosleep() is a much later addition.
Even Solaris 2.6/2.8 has this in the nanosleep man page:
ENOSYS nanosleep() is not supported by this implementa-
tion.
More information about the freebsd-bugs
mailing list