libressl-CRYPTO_lock3
Thread support
Usage
Crypto Library (libcrypto, -lcrypto)
#include <openssl/crypto.h>
void
CRYPTO_lock(int mode, int type, const char *file, int line);
int
CRYPTO_add(int *p, int amount, int type);
#define CRYPTO_w_lock(type) \ CRYPTO_lock(CRYPTO_LOCK|CRYPTO_WRITE, type, __FILE__, __LINE__) #define CRYPTO_w_unlock(type) \ CRYPTO_lock(CRYPTO_UNLOCK|CRYPTO_WRITE, type, __FILE__, __LINE__) #define CRYPTO_r_lock(type) \ CRYPTO_lock(CRYPTO_LOCK|CRYPTO_READ, type, __FILE__, __LINE__) #define CRYPTO_r_unlock(type) \ CRYPTO_lock(CRYPTO_UNLOCK|CRYPTO_READ, type, __FILE__, __LINE__)
Overview
These functions are obsolete.
CRYPTO_lock() locks or unlocks a mutex lock.
mode is a bitfield describing what should be done with the lock. For each call, either CRYPTO_LOCK or CRYPTO_UNLOCK must be included. In the LibreSSL implementation, CRYPTO_READ and CRYPTO_WRITE are ignored.
type is a number in the range 0 <= type < CRYPTO_NUM_LOCKS identifying a particular lock. Currently, the value of CRYPTO_NUM_LOCKS is 41.
The file and line arguments are ignored.
In the LibreSSL implementation, CRYPTO_lock() is a wrapper around pthread_mutex_lock(3) and pthread_mutex_unlock(3).
CRYPTO_add() locks the lock number type, adds amount to *p, and unlocks the lock number type again.
Return values
CRYPTO_add() returns the new value of *p.