#include std::vector > locks; void locking_function(int mode, int n, const char *file, int line){ if((mode & CRYPTO_LOCK)) locks[n]->lock(); else locks[n]->unlock(); } void setup_locks(){ locks.reserve(CRYPTO_num_locks()); for(int i=0;i(new boost::signals2::mutex())); } CRYPTO_set_locking_callback((void (*)(int,int,const char *,int))locking_function); }