X-Git-Url: https://erislabs.net/gitweb/?a=blobdiff_plain;f=lib%2Fsleep.c;h=45b9d803d95ac60b79a0cbc416bef94ffb5b9abe;hb=47cb657eca1abf2c26c32c8ce03def994a3ee37c;hp=213e5bd290762886ab6104b194e1206db5abb118;hpb=b2e2010c7c902235b5efb5bd3c6529f61b093aa4;p=gnulib.git diff --git a/lib/sleep.c b/lib/sleep.c index 213e5bd29..45b9d803d 100644 --- a/lib/sleep.c +++ b/lib/sleep.c @@ -1,5 +1,5 @@ /* Pausing execution of the current thread. - Copyright (C) 2007, 2009, 2010 Free Software Foundation, Inc. + Copyright (C) 2007, 2009-2011 Free Software Foundation, Inc. Written by Bruno Haible , 2007. This program is free software: you can redistribute it and/or modify @@ -50,13 +50,14 @@ sleep (unsigned int seconds) /* Guarantee unlimited sleep and a reasonable return value. Cygwin 1.5.x rejects attempts to sleep more than 49.7 days (2**32 milliseconds), but uses uninitialized memory which results in a - garbage answer. */ + garbage answer. Similarly, Linux 2.6.9 with glibc 2.3.4 has a too + small return value when asked to sleep more than 24.85 days. */ unsigned int rpl_sleep (unsigned int seconds) { /* This requires int larger than 16 bits. */ - verify (UINT_MAX / 49 / 24 / 60 / 60); - const unsigned int limit = 49 * 24 * 60 * 60; + verify (UINT_MAX / 24 / 24 / 60 / 60); + const unsigned int limit = 24 * 24 * 60 * 60; while (limit < seconds) { unsigned int result;