From: Roland McGrath Date: Wed, 29 Dec 2004 09:17:26 +0000 (+0000) Subject: [BZ #626] X-Git-Tag: cvs/fedora-glibc-20050106T1443~15 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=9410140c5e774bc709f2d2f39bcee215d78cf624;p=thirdparty%2Fglibc.git [BZ #626] 2004-12-29 Roland McGrath [BZ #626] * sysdeps/unix/alarm.c (alarm): Round return value to nearest rather than always up; when nearest is zero, round up to one. --- diff --git a/sysdeps/unix/alarm.c b/sysdeps/unix/alarm.c index ae77782c547..84ab5a52fed 100644 --- a/sysdeps/unix/alarm.c +++ b/sysdeps/unix/alarm.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991,92,94,97,2002 Free Software Foundation, Inc. +/* Copyright (C) 1991,1992,1994,1997,2002,2004 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -41,7 +41,10 @@ alarm (seconds) return 0; retval = old.it_value.tv_sec; - if (old.it_value.tv_usec) + /* Round to the nearest second, but never report zero seconds when + the alarm is still set. */ + if (old.it_value.tv_usec >= 500000 + || (retval == 0 && old.it_value.tv_usec > 0)) ++retval; return retval; }