NAME
CRYPTO_lock,
    CRYPTO_w_lock,
    CRYPTO_w_unlock,
    CRYPTO_r_lock,
    CRYPTO_r_unlock, CRYPTO_add
    — thread support
SYNOPSIS
/* -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__)
DESCRIPTION
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.
SEE ALSO
HISTORY
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.