From 9410140c5e774bc709f2d2f39bcee215d78cf624 Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Wed, 29 Dec 2004 09:17:26 +0000 Subject: [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. --- sysdeps/unix/alarm.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/sysdeps/unix/alarm.c b/sysdeps/unix/alarm.c index ae77782c54..84ab5a52fe 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; } -- cgit 1.4.1