# nng_cv_alloc(3supp) Manual Page

## NAME

nng_cv_alloc - allocate condition variable

## SYNOPSIS

    #include <nng/nng.h>
    #include <nng/supplemental/util/platform.h>

    typedef struct nng_cv nng_cv;

    int nng_cv_alloc(nng_cv **cvp, nng_mtx *mtx);

## DESCRIPTION

The `nng_cv_alloc()` function allocates a condition variable, using the mutex mtx, and returns it in cvp.

Every condition variable is associated with a mutex, which must be owned when a thread waits for the condition using `nng_cv_wait()` or `nng_cv_until()`. The mutex must also be owned when signaling the condition using the `nng_cv_wake()` or `nng_cv_wake1()` functions.

## RETURN VALUES

This function returns 0 on success, and non-zero otherwise.

## ERRORS

`NNG_ENOMEM` | Insufficient free memory exists.

## SEE ALSO

nng_cv_free(3supp), nng_cv_until(3supp), nng_cv_wait(3supp), nng_cv_wake(3supp), nng_cv_wake1(3supp), nng_mtx_alloc(3supp), nng_strerror(3), nng(7)