84 lines
2.2 KiB
Groff
84 lines
2.2 KiB
Groff
.\" $OpenBSD: pthread_spin_lock.3,v 1.3 2020/04/06 00:01:08 pirofti Exp $
|
|
.\"
|
|
.\" Copyright (c) 2012 Paul Irofti <paul@irofti.net>
|
|
.\"
|
|
.\" Permission to use, copy, modify, and distribute this software for any
|
|
.\" purpose with or without fee is hereby granted, provided that the above
|
|
.\" copyright notice and this permission notice appear in all copies.
|
|
.\"
|
|
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
|
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
|
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
|
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
|
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
|
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
.\"
|
|
.\"
|
|
.Dd $Mdocdate: April 6 2020 $
|
|
.Dt PTHREAD_SPIN_LOCK 3
|
|
.Os
|
|
.Sh NAME
|
|
.Nm pthread_spin_lock ,
|
|
.Nm pthread_spin_trylock
|
|
.Nd lock a spinlock object
|
|
.Sh SYNOPSIS
|
|
.In pthread.h
|
|
.Ft int
|
|
.Fn pthread_spin_lock "pthread_spinlock_t *lock"
|
|
.Ft int
|
|
.Fn pthread_spin_trylock "pthread_spinlock_t *lock"
|
|
.Sh DESCRIPTION
|
|
The
|
|
.Fn pthread_spin_lock
|
|
function locks the spinlock referenced by
|
|
.Fa lock .
|
|
The calling thread will acquire the lock if it's not owned by another thread.
|
|
Otherwise it will spin until the lock becomes available.
|
|
.Pp
|
|
The
|
|
.Fn pthread_spin_trylock
|
|
function will acquire the lock if the
|
|
.Fa lock
|
|
is not owned by another thread.
|
|
Otherwise it will fail.
|
|
.Sh RETURN VALUES
|
|
If successful,
|
|
.Fn pthread_spin_lock
|
|
and
|
|
.Fn pthread_spin_trylock
|
|
return zero; otherwise an error number is returned to indicate the error.
|
|
.Sh ERRORS
|
|
.Fn pthread_spin_lock
|
|
will fail if:
|
|
.Bl -tag -width Er
|
|
.It Bq Er EINVAL
|
|
The value specified by
|
|
.Fa lock
|
|
is invalid.
|
|
.It Bq Er EDEADLK
|
|
A deadlock condition was detected.
|
|
.El
|
|
.Pp
|
|
.Fn pthread_spin_trylock
|
|
will fail if:
|
|
.Bl -tag -width Er
|
|
.It Bq Er EINVAL
|
|
The value specified by
|
|
.Fa lock
|
|
is invalid.
|
|
.It Bq Er EBUSY
|
|
The lock is still in use.
|
|
.It Bq Er EDEADLK
|
|
A deadlock condition was detected.
|
|
.El
|
|
.Sh SEE ALSO
|
|
.Xr pthread_spin_init 3 ,
|
|
.Xr pthread_spin_unlock 3
|
|
.Sh STANDARDS
|
|
.Fn pthread_spin_lock
|
|
and
|
|
.Fn pthread_spin_trylock
|
|
conform to
|
|
.St -p1003.1-2008 .
|