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 <wk@gnupg.org>
This commit is contained in:
Werner Koch 2016-01-15 08:15:40 +01:00
parent 663c5d129a
commit 3cccd5a83b
No known key found for this signature in database
GPG Key ID: E3FDFF218E45B72B
1 changed files with 4 additions and 9 deletions

View File

@ -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)