mirror of
git://git.gnupg.org/gnupg.git
synced 2024-12-22 10:19:57 +01:00
assuan: Fix exponential decay for first second.
* common/asshelp.c (wait_for_sock): Round SECSLEFT. * dirmngr/dirmngr.c (main): Take care of --debug-wait also in dameon mode. * common/sysutils.c (gnupg_usleep) [HAVE_NANOSLEEP]: Fix nanosleep use. -- Without the rounding we saw in verbose mose [...]to come up ... (5s) [...]to come up ... (4s) immediately without the expected one second delay. Waiting for the next seconds did not work if nanosleep was used due to improper passed parameters in gnupg_usleep. Adding --debug-wait for dirmngr in daemon mode is required to test this change. GnuPG-bug-id: 3490 Signed-off-by: Werner Koch <wk@gnupg.org> (cherry picked from commit 0cfdd3b57d592fb6baa7dafe8fde124e8a6c7798) Fixes-commit: 1189df2cd7d4b6896ba22aa204c159ff2a425ead Signed-off-by: Werner Koch <wk@gnupg.org>
This commit is contained in:
parent
1189df2cd7
commit
38eb7c360b
@ -326,7 +326,10 @@ wait_for_sock (int secs, const char *name, const char *sockname, int verbose, as
|
||||
{
|
||||
if (verbose)
|
||||
{
|
||||
secsleft = (target_us - elapsed_us)/1000000;
|
||||
secsleft = (target_us - elapsed_us + 999999)/1000000;
|
||||
/* log_clock ("left=%d last=%d targ=%d elap=%d next=%d\n", */
|
||||
/* secsleft, lastalert, target_us, elapsed_us, */
|
||||
/* next_sleep_us); */
|
||||
if (secsleft < lastalert)
|
||||
{
|
||||
log_info (_("waiting for the %s to come up ... (%ds)\n"),
|
||||
|
@ -340,11 +340,10 @@ gnupg_usleep (unsigned int usecs)
|
||||
struct timespec req;
|
||||
struct timespec rem;
|
||||
|
||||
req.tv_sec = 0;
|
||||
req.tv_nsec = usecs * 1000;
|
||||
|
||||
req.tv_sec = usecs / 1000000;
|
||||
req.tv_nsec = (usecs % 1000000) * 1000;
|
||||
while (nanosleep (&req, &rem) < 0 && errno == EINTR)
|
||||
req = rem;
|
||||
req = rem;
|
||||
}
|
||||
|
||||
#else /*Standard Unix*/
|
||||
|
@ -1203,6 +1203,14 @@ main (int argc, char **argv)
|
||||
current_logfile = xstrdup (logfile);
|
||||
}
|
||||
|
||||
if (debug_wait)
|
||||
{
|
||||
log_debug ("waiting for debugger - my pid is %u .....\n",
|
||||
(unsigned int)getpid());
|
||||
gnupg_sleep (debug_wait);
|
||||
log_debug ("... okay\n");
|
||||
}
|
||||
|
||||
#ifndef HAVE_W32_SYSTEM
|
||||
if (strchr (socket_name, ':'))
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user