aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNIIBE Yutaka <[email protected]>2023-09-01 02:28:44 +0000
committerNIIBE Yutaka <[email protected]>2023-09-01 02:28:44 +0000
commit5e47d5edd8f854d4905985105991603f106ed16b (patch)
treed713215f989831aa531b740564c197277db1b45a
parentagent: Fix the previous commit. (diff)
downloadgnupg-5e47d5edd8f854d4905985105991603f106ed16b.tar.gz
gnupg-5e47d5edd8f854d4905985105991603f106ed16b.zip
agent: Fix timer list management.
* agent/cache.c (insert_to_timer_list): Update TV_SEC of the top entry when inserted. -- Signed-off-by: NIIBE Yutaka <[email protected]>
-rw-r--r--agent/cache.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/agent/cache.c b/agent/cache.c
index 16a21bd77..0525e3b09 100644
--- a/agent/cache.c
+++ b/agent/cache.c
@@ -226,8 +226,12 @@ insert_to_timer_list (struct timespec *ts, ITEM entry)
if (!the_timer_list || ts->tv_sec >= entry->t.tv_sec)
{
- if (the_timer_list && ts->tv_nsec)
- the_timer_list->t.tv_sec++;
+ if (the_timer_list)
+ {
+ the_timer_list->t.tv_sec += ts->tv_sec - entry->t.tv_sec;
+ if (ts->tv_nsec)
+ the_timer_list->t.tv_sec++;
+ }
ts->tv_sec = entry->t.tv_sec;
ts->tv_nsec = 0;