Help please.

I have a program/parent thread that launches 4 child threads. It's a Win32 application that has to be linked using the /MT VC compiler option for reasons other than OpenSSL. The parent thread calls the following OpenSSL calls.


Two of the 4 child threads make OpenSSL calls. One child thread is a very simple single-threaded HTTPS web server. One child thread is a very simple single-threaded HTTPS web browser.

As per the OpenSSL FAQ (, do I need to implement the CRYPTO_set_locking_callback() and CRYPTO_set_id_callback() functions?

Quoted from the FAQ: "Multi-threaded applications must provide two callback functions to OpenSSL by calling CRYPTO_set_locking_callback() and CRYPTO_set_id_callback(). (For OpenSSL 0.9.9 or later, the new function CRYPTO_set_idptr_callback() may be used in place of CRYPTO_set_id_callback().) This is described in the threads(3) manpage."

I was thinking that since these child threads are not multi-threaded, then I may not need to implement these functions? However, since I've had to use the /MT option in VC and since the program/parent thread does have children threads, then maybe I do?

NOTE: I am linking with the the non-static versions of libeay32MT.lib and ssleay32MT.lib in MS Visual C++ v6.

In any case, does it hurt anything if I try to implement these two OpenSSL functions anyway? And, if it's quick and easy to do, can someone sent code snippets of implementations of these two functions?

Thanks a million... again! Love this OpenSSL stuff!


OpenSSL Project                       
User Support Mailing List          
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to