Skip to content

Commit

Permalink
Update multi-thread FAQ
Browse files Browse the repository at this point in the history
Reviewed-by: Matt Caswell <[email protected]>
  • Loading branch information
richsalz authored and Rich Salz committed May 5, 2015
1 parent ff660b9 commit a28ef86
Showing 1 changed file with 9 additions and 12 deletions.
21 changes: 9 additions & 12 deletions FAQ
Original file line number Diff line number Diff line change
Expand Up @@ -789,18 +789,15 @@ considered to be security issues.

* Is OpenSSL thread-safe?

Yes (with limitations: an SSL connection may not concurrently be used
by multiple threads). On Windows and many Unix systems, OpenSSL
automatically uses the multi-threaded versions of the standard
libraries. If your platform is not one of these, consult the INSTALL
file.

Multi-threaded applications must provide two callback functions to
OpenSSL by calling CRYPTO_set_locking_callback() and
CRYPTO_set_id_callback(), for all versions of OpenSSL up to and
including 0.9.8[abc...]. As of version 1.0.0, CRYPTO_set_id_callback()
and associated APIs are deprecated by CRYPTO_THREADID_set_callback()
and friends. This is described in the threads(3) manpage.
Provided an application sets up the thread callback functions, the
answer is yes. There are limitations; for example, an SSL connection
cannot be used concurrently by multiple threads. This is true for
most OpenSSL objects.

To do this, your application must call CRYPTO_set_locking_callback()
and one of the CRYPTO_THREADID_set...() API's. See the OpenSSL threads
manpage for details and "note on multi-threading" in the INSTALL file in
the source distribution.

* I've compiled a program under Windows and it crashes: why?

Expand Down

0 comments on commit a28ef86

Please sign in to comment.