From 3cccd5a83b96e4558642dcdf5d974f64ebdb9817 Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Fri, 15 Jan 2016 08:15:40 +0100 Subject: [PATCH] kbx,w32: Use shorter retry intervals for keybox_file_rename. * kbx/keybox-util.c (keybox_file_rename): Restart retry intervals after 800ms. -- The common use case is that the process waiting for a rename does an import while another process does a key listing with only short lock periods. Thus it does not make sense to set the final backoff time to 8s. It would actually be okay to retry every 100ms but that would spill the console with "waiting..." messages. This change prints the waiting message only every 1.5s. Signed-off-by: Werner Koch --- kbx/keybox-util.c | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/kbx/keybox-util.c b/kbx/keybox-util.c index 740ea73b4..13fedb32f 100644 --- a/kbx/keybox-util.c +++ b/kbx/keybox-util.c @@ -169,16 +169,11 @@ keybox_file_rename (const char *oldname, const char *newname) * Note that we don't need this on Unix due to the inode * concept. * - * So let's wait until the rename has worked. We use the - * same retry intervals as used by dotlock.c, namely 50ms, - * 100ms, 200ms, 400ms, 800ms, 2s, 4s and 8s. */ - if (!wtime) + * So let's wait until the rename has worked. The retry + * intervals are 50, 100, 200, 400, 800, 50ms, ... */ + if (!wtime || wtime >= 800) wtime = 50; - else if (wtime < 800) - wtime *= 2; - else if (wtime == 800) - wtime = 2000; - else if (wtime < 8000) + else wtime *= 2; if (wtime >= 800)