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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
|
<table class="head">
<tr>
<td class="head-ltitle">PTHREAD_COND_WAIT(3)</td>
<td class="head-vol">Library Functions Manual</td>
<td class="head-rtitle">PTHREAD_COND_WAIT(3)</td>
</tr>
</table>
<div class="manual-text">
<section class="Sh">
<h1 class="Sh" id="NAME"><a class="permalink" href="#NAME">NAME</a></h1>
<p class="Pp"><code class="Nm">pthread_cond_wait</code> —
<span class="Nd">wait on a condition variable</span></p>
</section>
<section class="Sh">
<h1 class="Sh" id="LIBRARY"><a class="permalink" href="#LIBRARY">LIBRARY</a></h1>
<p class="Pp"><span class="Lb">POSIX Threads Library (libpthread,
-lpthread)</span></p>
</section>
<section class="Sh">
<h1 class="Sh" id="SYNOPSIS"><a class="permalink" href="#SYNOPSIS">SYNOPSIS</a></h1>
<p class="Pp"><code class="In">#include
<<a class="In">pthread.h</a>></code></p>
<p class="Pp"><var class="Ft">int</var>
<br/>
<code class="Fn">pthread_cond_wait</code>(<var class="Fa" style="white-space: nowrap;">pthread_cond_t
*restrict cond</var>,
<var class="Fa" style="white-space: nowrap;">pthread_mutex_t *restrict
mutex</var>);</p>
</section>
<section class="Sh">
<h1 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1>
<p class="Pp">The
<a class="permalink" href="#pthread_cond_wait"><code class="Fn" id="pthread_cond_wait">pthread_cond_wait</code></a>()
function atomically blocks the current thread waiting on the condition
variable specified by <var class="Fa">cond</var>, and releases the mutex
specified by <var class="Fa">mutex</var>. The waiting thread unblocks only
after another thread calls <a class="Xr">pthread_cond_signal(3)</a>, or
<a class="Xr">pthread_cond_broadcast(3)</a> with the same condition
variable, and the current thread reacquires the lock on
<var class="Fa">mutex</var>.</p>
</section>
<section class="Sh">
<h1 class="Sh" id="RETURN_VALUES"><a class="permalink" href="#RETURN_VALUES">RETURN
VALUES</a></h1>
<p class="Pp">If successful, the <code class="Fn">pthread_cond_wait</code>()
function will return zero. Otherwise an error number will be returned to
indicate the error.</p>
</section>
<section class="Sh">
<h1 class="Sh" id="ERRORS"><a class="permalink" href="#ERRORS">ERRORS</a></h1>
<p class="Pp">The <code class="Fn">pthread_cond_wait</code>() function will fail
if:</p>
<dl class="Bl-tag">
<dt id="EINVAL">[<a class="permalink" href="#EINVAL"><code class="Er">EINVAL</code></a>]</dt>
<dd>The value specified by <var class="Fa">cond</var> or the value specified
by <var class="Fa">mutex</var> is invalid.</dd>
<dt id="EPERM">[<a class="permalink" href="#EPERM"><code class="Er">EPERM</code></a>]</dt>
<dd>The specified <var class="Fa">mutex</var> was not locked by the calling
thread.</dd>
<dt id="EOWNERDEAD">[<a class="permalink" href="#EOWNERDEAD"><code class="Er">EOWNERDEAD</code></a>]</dt>
<dd>The argument <var class="Fa">mutex</var> points to a robust mutex and the
process containing the previous owning thread terminated while holding the
mutex lock. The lock was granted to the caller and it is up to the new
owner to make the state consistent.</dd>
<dt id="ENOTRECOVERABLE">[<a class="permalink" href="#ENOTRECOVERABLE"><code class="Er">ENOTRECOVERABLE</code></a>]</dt>
<dd>The state protected by the <var class="Fa">mutex</var> is not
recoverable.</dd>
</dl>
</section>
<section class="Sh">
<h1 class="Sh" id="SEE_ALSO"><a class="permalink" href="#SEE_ALSO">SEE
ALSO</a></h1>
<p class="Pp"><a class="Xr">pthread_cond_broadcast(3)</a>,
<a class="Xr">pthread_cond_destroy(3)</a>,
<a class="Xr">pthread_cond_init(3)</a>,
<a class="Xr">pthread_cond_signal(3)</a>,
<a class="Xr">pthread_cond_timedwait(3)</a>,
<a class="Xr">pthread_mutex_consistent(3)</a></p>
</section>
<section class="Sh">
<h1 class="Sh" id="STANDARDS"><a class="permalink" href="#STANDARDS">STANDARDS</a></h1>
<p class="Pp">The <code class="Fn">pthread_cond_wait</code>() function conforms
to <span class="St">ISO/IEC 9945-1:1996
(“POSIX.1”)</span>.</p>
</section>
</div>
<table class="foot">
<tr>
<td class="foot-date">August 7, 2019</td>
<td class="foot-os">FreeBSD 15.0</td>
</tr>
</table>
|