= nng_cv_wake1(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_wake1 - wake one waiter == SYNOPSIS [source, c] ---- #include #include void nng_cv_wake1(nng_cv *cv); ---- == DESCRIPTION The `nng_cv_wake1()` wakes at most one thread waiting for the condition variable _cv_ to be signaled in the `<>` or `<>` 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: While this function avoids the "`thundering herd`" problem, the caller cannot predict which waiter will be woken, and so the design must ensure that it is sufficient that _any_ waiter be woken. When in doubt, it is safer to use `<>`. == RETURN VALUES None. == ERRORS None. == SEE ALSO <>, <>, <>, <>, <>, <>, <>, <>