65 lines
1.7 KiB
Text
65 lines
1.7 KiB
Text
= nng_mtx_lock(3supp)
|
|
//
|
|
// Copyright 2018 Staysail Systems, Inc. <info@staysail.tech>
|
|
// Copyright 2018 Capitar IT Group BV <info@capitar.com>
|
|
//
|
|
// 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_mtx_lock - lock mutex
|
|
|
|
== SYNOPSIS
|
|
|
|
[source, c]
|
|
----
|
|
#include <nng/nng.h>
|
|
#include <nng/supplemental/util/platform.h>
|
|
|
|
void nng_mtx_lock(nng_mtx *mtx);
|
|
----
|
|
|
|
== DESCRIPTION
|
|
|
|
The `nng_mtx_lock()` acquires exclusive ownership of the mutex _mtx_.
|
|
If the lock is already owned, this function will wait until the current
|
|
owner releases it with xref:nng_mtx_unlock.3supp.adoc[`nng_mtx_unlock()`].
|
|
|
|
If multiple threads are waiting for the lock, the order of acquisition
|
|
is not specified.
|
|
|
|
NOTE: A mutex can _only_ be unlocked by the thread that locked it.
|
|
|
|
IMPORTANT: Mutex locks are _not_ recursive; attempts to reacquire the
|
|
same mutex may result in deadlock or aborting the current program.
|
|
It is a programming error for the owner of a mutex to attempt to
|
|
reacquire it.
|
|
|
|
****
|
|
_NNG_ offers neither a non-blocking variant that can fail,
|
|
nor recursive mutexes.
|
|
This is by design, as _NNG_ itself does not use such things,
|
|
and most often the need for them is the result of poor design.
|
|
If such capabilities are needed, they may be synthesized fairly
|
|
easily from mutexes and condition variables.
|
|
****
|
|
|
|
== RETURN VALUES
|
|
|
|
None.
|
|
|
|
== ERRORS
|
|
|
|
None.
|
|
|
|
== SEE ALSO
|
|
|
|
[.text-left]
|
|
xref:nng_cv_alloc.3supp.adoc[nng_cv_alloc(3supp)],
|
|
xref:nng_mtx_alloc.3supp.adoc[nng_mtx_alloc(3supp)],
|
|
xref:nng_mtx_unlock.3supp.adoc[nng_mtx_unlock(3supp)],
|
|
xref:nng.7.adoc[nng(7)]
|