I'm making progress slowly (not my main project).  I've run into a bit
of a problem: the dynlock callback setting cannot be made thread-safe
due to the setter API's using three functions to set three related
callbacks.

Also, I'm not sure that the dynlocks need a default implementation.  It
seems they don't, at least not as far as *apps* are concerned.  Please
let me know, though I'm inclined to provide a default implementation
anyways, just because it's no big deal.

A few notes and questions:

 - Locks in OpenSSL are really reader-writer locks, but the sample code
   in crypto/threads/*.c uses mutexes only.

   How important is it that reader/writer locks be used instead of
   exclusive locks?

 - The add_lock stuff should just use OPENSSL_atomic_add() wherever it
   exists.

   How would I determine at build-time (in ./Configure and in
   ./crypto/lock.c) whether OPENSSL_atomic_add is available?

 - I'll be adding a single setter for dynlock callbacks, and deprecating
   the old ones.

   Any objections?

 - As I get closer to having code that can be tested...

   I can provide tests of the one-time initialization of things, but
   it'd be nice to test threaded functionality in general -- is there
   such a general test?  If so, please point me to it.

Nico
-- 
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       openssl-dev@openssl.org
Automated List Manager                           majord...@openssl.org

Reply via email to