blob: d4a806205602008bebd6f8f97542a884422232dd (
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
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
|
<table class="head">
<tr>
<td class="head-ltitle">PTHREAD_MUTEX_LOCK(3)</td>
<td class="head-vol">Library Functions Manual</td>
<td class="head-rtitle">PTHREAD_MUTEX_LOCK(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_mutex_lock</code> —
<span class="Nd">lock a mutex</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_mutex_lock</code>(<var class="Fa" style="white-space: nowrap;">pthread_mutex_t
*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_mutex_lock"><code class="Fn" id="pthread_mutex_lock">pthread_mutex_lock</code></a>()
function locks <var class="Fa">mutex</var>. If the mutex is already locked,
the calling thread will block until the mutex becomes available.</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, <code class="Fn">pthread_mutex_lock</code>() 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_mutex_lock</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">mutex</var> is invalid.</dd>
<dt id="EDEADLK">[<a class="permalink" href="#EDEADLK"><code class="Er">EDEADLK</code></a>]</dt>
<dd>A deadlock would occur if the thread blocked waiting for
<var class="Fa">mutex</var>.</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_mutex_consistent(3)</a>,
<a class="Xr">pthread_mutex_destroy(3)</a>,
<a class="Xr">pthread_mutex_init(3)</a>,
<a class="Xr">pthread_mutex_trylock(3)</a>,
<a class="Xr">pthread_mutex_unlock(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_mutex_lock</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>
|