summaryrefslogtreecommitdiffstats
path: root/upstream/opensuse-leap-15-6/man3/pthread_spin_lock.3
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-15 19:43:11 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-15 19:43:11 +0000
commitfc22b3d6507c6745911b9dfcc68f1e665ae13dbc (patch)
treece1e3bce06471410239a6f41282e328770aa404a /upstream/opensuse-leap-15-6/man3/pthread_spin_lock.3
parentInitial commit. (diff)
downloadmanpages-l10n-fc22b3d6507c6745911b9dfcc68f1e665ae13dbc.tar.xz
manpages-l10n-fc22b3d6507c6745911b9dfcc68f1e665ae13dbc.zip
Adding upstream version 4.22.0.upstream/4.22.0
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'upstream/opensuse-leap-15-6/man3/pthread_spin_lock.3')
-rw-r--r--upstream/opensuse-leap-15-6/man3/pthread_spin_lock.3102
1 files changed, 102 insertions, 0 deletions
diff --git a/upstream/opensuse-leap-15-6/man3/pthread_spin_lock.3 b/upstream/opensuse-leap-15-6/man3/pthread_spin_lock.3
new file mode 100644
index 00000000..d85ed321
--- /dev/null
+++ b/upstream/opensuse-leap-15-6/man3/pthread_spin_lock.3
@@ -0,0 +1,102 @@
+.\" Copyright (c) 2017, Michael Kerrisk <mtk.manpages@gmail.com>
+.\"
+.\" SPDX-License-Identifier: Linux-man-pages-copyleft
+.\"
+.TH pthread_spin_lock 3 2023-03-30 "Linux man-pages 6.04"
+.SH NAME
+pthread_spin_lock, pthread_spin_trylock, pthread_spin_unlock \-
+lock and unlock a spin lock
+.SH LIBRARY
+POSIX threads library
+.RI ( libpthread ", " \-lpthread )
+.SH SYNOPSIS
+.nf
+.B #include <pthread.h>
+.PP
+.BI "int pthread_spin_lock(pthread_spinlock_t *" lock );
+.BI "int pthread_spin_trylock(pthread_spinlock_t *" lock );
+.BI "int pthread_spin_unlock(pthread_spinlock_t *" lock );
+.fi
+.PP
+.RS -4
+Feature Test Macro Requirements for glibc (see
+.BR feature_test_macros (7)):
+.RE
+.PP
+.BR pthread_spin_lock (),
+.BR pthread_spin_trylock ():
+.nf
+ _POSIX_C_SOURCE >= 200112L
+.fi
+.SH DESCRIPTION
+The
+.BR pthread_spin_lock ()
+function locks the spin lock referred to by
+.IR lock .
+If the spin lock is currently unlocked,
+the calling thread acquires the lock immediately.
+If the spin lock is currently locked by another thread,
+the calling thread spins, testing the lock until it becomes available,
+at which point the calling thread acquires the lock.
+.PP
+Calling
+.BR pthread_spin_lock ()
+on a lock that is already held by the caller
+or a lock that has not been initialized with
+.BR pthread_spin_init (3)
+results in undefined behavior.
+.PP
+The
+.BR pthread_spin_trylock ()
+function is like
+.BR pthread_spin_lock (),
+except that if the spin lock referred to by
+.I lock
+is currently locked,
+then, instead of spinning, the call returns immediately with the error
+.BR EBUSY .
+.PP
+The
+.BR pthread_spin_unlock ()
+function unlocks the spin lock referred to
+.IR lock .
+If any threads are spinning on the lock,
+one of those threads will then acquire the lock.
+.PP
+Calling
+.BR pthread_spin_unlock ()
+on a lock that is not held by the caller results in undefined behavior.
+.SH RETURN VALUE
+On success, these functions return zero.
+On failure, they return an error number.
+.SH ERRORS
+.BR pthread_spin_lock ()
+may fail with the following errors:
+.TP
+.B EDEADLOCK
+.\" Not detected in glibc
+The system detected a deadlock condition.
+.PP
+.BR pthread_spin_trylock ()
+fails with the following errors:
+.TP
+.B EBUSY
+The spin lock is currently locked by another thread.
+.SH STANDARDS
+POSIX.1-2008.
+.SH HISTORY
+glibc 2.2.
+POSIX.1-2001.
+.SH CAVEATS
+Applying any of the functions described on this page to
+an uninitialized spin lock results in undefined behavior.
+.PP
+Carefully read NOTES in
+.BR pthread_spin_init (3).
+.SH SEE ALSO
+.ad l
+.nh
+.\" FIXME . .BR pthread_mutex_lock (3),
+.BR pthread_spin_destroy (3),
+.BR pthread_spin_init (3),
+.BR pthreads (7)