* nscd/cache.c (prune_cache): If cache is empty, instruct caller
authorUlrich Drepper <drepper@redhat.com>
Wed, 14 Nov 2007 15:26:10 +0000 (15:26 +0000)
committerUlrich Drepper <drepper@redhat.com>
Wed, 14 Nov 2007 15:26:10 +0000 (15:26 +0000)
to wake up in 24 hours.

ChangeLog
nscd/cache.c

index 3161ab0..cb282f6 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2007-11-14  Ulrich Drepper  <drepper@redhat.com>
 
+       * nscd/cache.c (prune_cache): If cache is empty, instruct caller
+       to wake up in 24 hours.
+
        * nscd/gai.c (__ioctl): Define.  Include check_native.c.
 
 2007-11-13  Ulrich Drepper  <drepper@redhat.com>
index ea79c38..4d812e2 100644 (file)
@@ -288,7 +288,8 @@ prune_cache (struct database_dyn *table, time_t now, int fd)
     dbg_log (_("pruning %s cache; time %ld"),
             dbnames[table - dbs], (long int) now);
 
-  time_t next_timeout = LONG_MAX;
+#define NO_TIMEOUT LONG_MAX
+  time_t next_timeout = NO_TIMEOUT;
   do
     {
       ref_t run = table->head->array[--cnt];
@@ -474,5 +475,7 @@ prune_cache (struct database_dyn *table, time_t now, int fd)
   if (any)
     gc (table);
 
-  return next_timeout - now;
+  /* If there is no entry in the database and we therefore have no new
+     timeout value, tell the caller to wake up in 24 hours.  */
+  return next_timeout == NO_TIMEOUT ? 24 * 60 * 60 : next_timeout - now;
 }