[Pkg-gnupg-commit] [gnupg2] 87/116: agent: Reduce sleep time in the progress callback.

Daniel Kahn Gillmor dkg at fifthhorseman.net
Tue Jan 24 04:40:57 UTC 2017


This is an automated email from the git hooks/post-receive script.

dkg pushed a commit to branch master
in repository gnupg2.

commit 3d356d165aed7d76a3ea811b1d24ed0a05ac90d4
Author: Werner Koch <wk at gnupg.org>
Date:   Wed Jan 18 10:13:04 2017 +0100

    agent: Reduce sleep time in the progress callback.
    
    * agent/gpg-agent.c (agent_libgcrypt_progress_cb): Reduce sleep time
    from 100ms to 1ms or use gpgrt_yield when build against a recent
    libgpg-error.
    --
    
    Debian-bug-id: 851298
    Signed-off-by: Werner Koch <wk at gnupg.org>
---
 agent/gpg-agent.c | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/agent/gpg-agent.c b/agent/gpg-agent.c
index 724b55a..b203b07 100644
--- a/agent/gpg-agent.c
+++ b/agent/gpg-agent.c
@@ -1763,11 +1763,19 @@ agent_libgcrypt_progress_cb (void *data, const char *what, int printchar,
 
   /* Libgcrypt < 1.8 does not know about nPth and thus when it reads
    * from /dev/random this will block the process.  To mitigate this
-   * problem we take a short nap when Libgcrypt tells us that it needs
+   * problem we yield the thread when Libgcrypt tells us that it needs
    * more entropy.  This way other threads have chance to run.  */
 #if GCRYPT_VERSION_NUMBER < 0x010800 /* 1.8.0 */
   if (what && !strcmp (what, "need_entropy"))
-    npth_usleep (100000); /* 100ms */
+    {
+#if GPGRT_VERSION_NUMBER < 0x011900 /* 1.25 */
+      /* In older gpg-error versions gpgrt_yield is buggy for use with
+       * nPth and thus we need to resort to a sleep call.  */
+      npth_usleep (1000); /* 1ms */
+#else
+      gpgrt_yield ();
+#endif
+    }
 #endif
 }
 

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-gnupg/gnupg2.git



More information about the Pkg-gnupg-commit mailing list