CRYPTO_lock,
CRYPTO_w_lock,
CRYPTO_w_unlock,
CRYPTO_r_lock,
CRYPTO_r_unlock, CRYPTO_add
— thread support
#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__)
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.
CRYPTO_add() returns the new value of
*p.
CRYPTO_lock(),
CRYPTO_w_lock(),
CRYPTO_w_unlock(),
CRYPTO_r_lock(), and
CRYPTO_r_unlock() first appeared in SSLeay 0.6.0.
CRYPTO_add() first appeared in SSLeay 0.6.2. These
functions have been available since OpenBSD 2.4.