summaryrefslogtreecommitdiff
path: root/docs/ref/thr/nng_cv_wake.adoc
blob: 717b2ca97c80c821a18c5cbf0ee99570b656412d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
## nng_cv_wake

Wake all waiters.

### Synopsis

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

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.adoc[`nng_cv_wait`] or
xref:nng_cv_until.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 performance problem when there are many waiters, as they are all
woken simultaneously and may contend for resources.
See xref:nng_cv_wake1.adoc[`nng_cv_wake1`] for a solution to this problem.

### Return Values

None.

### Errors

None.

### See Also

xref:nng_cv_alloc.adoc[nng_cv_alloc],
xref:nng_cv_until.adoc[nng_cv_until],
xref:nng_cv_wait.adoc[nng_cv_wait],
xref:nng_cv_wake1.adoc[nng_cv_wake1],
xref:nng_mtx_alloc.adoc[nng_mtx_alloc],
xref:nng_mtx_lock.adoc[nng_mtx_lock],
xref:nng_mtx_unlock.adoc[nng_mtx_unlock],
xref:nng.adoc[nng]