public static void InitializeThreads() { // Initialize the threading locks int nLocks = CRYPTO_num_locks(); lock_objects = new List<object>(nLocks); for (int i = 0; i < nLocks; i++) { object obj = new object(); lock_objects.Add(obj); } // Initialize the internal thread id stack threadIDs = new System.Collections.Generic.Stack<uint>(); // Initialize the delegate for the locking callback CRYPTO_locking_callback_delegate = new CRYPTO_locking_callback(LockingCallback); CRYPTO_set_locking_callback(CRYPTO_locking_callback_delegate); // Initialze the thread id callback CRYPTO_id_callback_delegate = new CRYPTO_id_callback(ThreadIDCallback); CRYPTO_set_id_callback(CRYPTO_id_callback_delegate); }
public static extern void CRYPTO_set_locking_callback(CRYPTO_locking_callback cb);
public extern static void CRYPTO_set_locking_callback(CRYPTO_locking_callback cb);