CVSROOT:        /cvs
Module name:    src
Changes by:     chel...@cvs.openbsd.org 2019/01/21 16:41:26

Modified files:
        sys/kern       : sys_generic.c 

Log message:
select(2), pselect(2), poll(2), ppoll(2): Support full timeout range.

Remove the arbitrary and undocumented 24hr limits for timeouts from these
interfaces.  To do so, loop tsleep(9) to chip away at timeouts larger than
what tsleep(9) can handle in one call.

Use timerisvalid(3)/timespecisvalid() for input validation instead of
itimerfix()/timespecfix() to avoid the 100 million second upper bounds
those functions introduce.

POSIX requires support for timeouts of at least 31 days for select(2) and
pselect(2), so these changes make our implementation more compliant.

Other improvements here include better variable names for the time stuff
and more consolidated timeout logic with less backwards goto jumping, all
of which made dopselect() and doppoll() a bear to read.

Naming improvements prompted by tedu@ in a prior patch for nanosleep(2).
With input from deraadt@.  Validation bug spotted by matthew@ in an earlier
version.

ok visa@

Reply via email to