From 7401a0ba23ee7df2d701ff2d35df7e5ef6b56944 Mon Sep 17 00:00:00 2001 From: "David F. Skoll" Date: Tue, 4 Sep 2007 14:16:12 -0400 Subject: [PATCH] In queue mode, wake up once a minute to recalibrate sleep time. Required for laptops that hibernate or suspend. --- src/init.c | 4 ++-- src/queue.c | 8 ++++++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/init.c b/src/init.c index f224534b..be935980 100644 --- a/src/init.c +++ b/src/init.c @@ -269,11 +269,11 @@ void InitRemind(int argc, char *argv[]) if (*arg == '0') { PARSENUM(Daemon, arg); if (Daemon == 0) Daemon = -1; - else if (Daemon < 5) Daemon = 5; + else if (Daemon < 1) Daemon = 1; else if (Daemon > 60) Daemon = 60; } else { PARSENUM(Daemon, arg); - if (Daemon<5) Daemon=5; + if (Daemon<1) Daemon=1; else if (Daemon>60) Daemon=60; } break; diff --git a/src/queue.c b/src/queue.c index d8f00e53..1bb3d35f 100644 --- a/src/queue.c +++ b/src/queue.c @@ -181,6 +181,14 @@ void HandleQueuedReminders(void) if (Daemon > 0 && SleepTime > 60*Daemon) SleepTime = 60*Daemon; + /* Wake up once a minute to recalibrate sleep time in + case of laptop hibernation */ + if (Daemon <= 0) { + if (SleepTime > 60) { + SleepTime = 60; + } + } + if (Daemon >= 0) { sleep(SleepTime); } else {