Chris Dodd
cd...@csl.sri.com
______________________________________________________________________
OpenSSL Project http://www.openssl.org
User Support Mailing List openss...@openssl.org
Automated List Manager majo...@openssl.org
> Is the OpenSSL library supposed to be at all reentrant? I've had odd
> problems (intermittent errors) when trying to use OpenSSL in a
> multithreaded
> program (multiple threads each dealing with independent SSL connections),
> and have apparently solved them by creating a single global mutex and
> wrapping a mutex acquire around every call into the library. Is
> this kind of locking expected to be needed?
This should not be needed so long as you follow two rules:
1) You must properly set the multi-threaded locking callback.
2) You must not attempt to access the same object directly from two
threads at the same time. For example, you cannot call SSL_read and
SSL_write concurrently on the same SSL object.
DS
CRYPTO_set_id_callback();
CRYPTO_set_locking_callback();
CRYPTO_set_dynlock_create_callback();
CRYPTO_set_dynlock_lock_callback();
CRYPTO_set_dynlock_destroy_callback();
Dave.
-----Original Message-----
From: owner-ope...@openssl.org [mailto:owner-ope...@openssl.org] On Behalf Of Chris Dodd
Sent: Thursday, May 05, 2011 1:01 PM
To: openss...@openssl.org
Subject: OpenSSL and multithreaded programs
Is the OpenSSL library supposed to be at all reentrant? I've had odd
problems (intermittent errors) when trying to use OpenSSL in a multithreaded
program (multiple threads each dealing with independent SSL connections),
and have apparently solved them by creating a single global mutex and
wrapping a mutex acquire around every call into the library. Is
this kind of locking expected to be needed?
Chris Dodd
cd...@csl.sri.com