= nng_cv_wake(3supp) // // Copyright 2018 Staysail Systems, Inc. // Copyright 2018 Capitar IT Group BV // // This document is supplied under the terms of the MIT License, a // copy of which should be located in the distribution where this // file was obtained (LICENSE.txt). A copy of the license may also be // found online at https://opensource.org/licenses/MIT. // == NAME nng_cv_wake - wake all waiters == SYNOPSIS [source, c] ---- #include #include void nng_cv_wake(nng_cv *cv); ---- == DESCRIPTION The `nng_cv_wake()` wakes any threads waiting for the condition variable _cv_ to be signaled in the xref:nng_cv_wait.3supp.adoc[`nng_cv_wait()`] or xref:nng_cv_until.3supp.adoc[`nng_cv_until()`] functions. The caller must have have ownership of the mutex that was used when _cv_ was allocated. NOTE: The caller should already have set the condition that the waiters will check, while holding the mutex. TIP: This function wakes all threads, which is generally safer but can lead to a problem known as the "`thundering herd`" when there are many waiters, as they are all woken simultaneously. See xref:nng_cv_wake1.3supp.adoc[`nng_cv_wake1()`] for a solution to this problem. == RETURN VALUES None. == ERRORS None. == SEE ALSO [.text-left] xref:nng_cv_alloc.3supp.adoc[nng_cv_alloc(3supp)], xref:nng_cv_until.3supp.adoc[nng_cv_until(3supp)], xref:nng_cv_wait.3supp.adoc[nng_cv_wait(3supp)], xref:nng_cv_wake1.3supp.adoc[nng_cv_wake1(3supp)], xref:nng_mtx_alloc.3supp.adoc[nng_mtx_alloc(3supp)], xref:nng_mtx_lock.3supp.adoc[nng_mtx_lock(3supp)], xref:nng_mtx_unlock.3supp.adoc[nng_mtx_unlock(3supp)], xref:nng.7.adoc[nng(7)]