summaryrefslogtreecommitdiff
path: root/cipher/primegen.c
diff options
context:
space:
mode:
authorWerner Koch <wk@gnupg.org>2011-12-01 13:55:06 +0100
committerWerner Koch <wk@gnupg.org>2011-12-01 13:59:38 +0100
commit5a1b2784cc1a718fd44d551b7ec018ef4614ce30 (patch)
tree94c27e5523a3ec115ed773a261b70a3f14a0bca8 /cipher/primegen.c
parent37810e520dba6fcb9da5a13bc6fdba9076cfe0f2 (diff)
downloadlibgcrypt-5a1b2784cc1a718fd44d551b7ec018ef4614ce30.tar.gz
Completed switch to a simpler thread model.
This is only a first step. We will need to either implement pthread_atfork or - better - make use use POSIX RT semaphores.
Diffstat (limited to 'cipher/primegen.c')
-rw-r--r--cipher/primegen.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/cipher/primegen.c b/cipher/primegen.c
index 2788e349..d0cf20c1 100644
--- a/cipher/primegen.c
+++ b/cipher/primegen.c
@@ -141,9 +141,20 @@ struct primepool_s
};
struct primepool_s *primepool;
/* Mutex used to protect access to the primepool. */
-static ath_mutex_t primepool_lock = ATH_MUTEX_INITIALIZER;
+static ath_mutex_t primepool_lock;
+gcry_err_code_t
+_gcry_primegen_init (void)
+{
+ gcry_err_code_t ec;
+
+ ec = ath_mutex_init (&primepool_lock);
+ if (ec)
+ return gpg_err_code_from_errno (ec);
+ return ec;
+}
+
/* Save PRIME which has been generated at RANDOMLEVEL for later
use. Needs to be called while primepool_lock is being hold. Note
@@ -195,7 +206,7 @@ save_pool_prime (gcry_mpi_t prime, gcry_random_level_t randomlevel)
/* Return a prime for the prime pool or NULL if none has been found.
The prime needs to match NBITS and randomlevel. This function needs
- to be called why the primepool_look is being hold. */
+ to be called with the primepool_look is being hold. */
static gcry_mpi_t
get_pool_prime (unsigned int nbits, gcry_random_level_t randomlevel)
{