mirror of
git://git.sv.gnu.org/coreutils.git
synced 2026-04-21 03:12:48 +02:00
Round more carefully so we never call nanosleep with more than 999,999,999
nanoseconds. Comment out assertion because it uses on EINTR.
This commit is contained in:
@@ -168,14 +168,19 @@ main (int argc, char **argv)
|
||||
if (fail)
|
||||
usage (1);
|
||||
|
||||
/* Round to the nearest nanosecond here so that tv_nsec will be
|
||||
no larger than 999,999,999. */
|
||||
seconds += .0000000005;
|
||||
|
||||
/* Separate whole seconds from nanoseconds. */
|
||||
ts.tv_sec = seconds;
|
||||
ts.tv_nsec = (int) ((seconds - ts.tv_sec) * 1000000000 + .5);
|
||||
ts.tv_nsec = (seconds - ts.tv_sec) * 1000000000;
|
||||
|
||||
while (1)
|
||||
{
|
||||
struct timespec remaining;
|
||||
interrupted = nanosleep (&ts, &remaining);
|
||||
assert (!interrupted || errno == EINTR);
|
||||
/* assert (!interrupted || errno == EINTR); */
|
||||
if (!interrupted)
|
||||
break;
|
||||
ts = remaining;
|
||||
|
||||
Reference in New Issue
Block a user