PTHREAD_SPIN_LOCK(3) | Library Functions Manual | PTHREAD_SPIN_LOCK(3)

# NAME

`pthread_spin_lock`, `pthread_spin_trylock` — lock a spinlock object

# SYNOPSIS

POSIX Threads Library (libpthread, -lpthread)
`#include <pthread.h>`

int
`pthread_spin_lock`(pthread_spinlock_t *lock);

int
`pthread_spin_trylock`(pthread_spinlock_t *lock);

# DESCRIPTION

The `pthread_spin_lock`() function locks the spinlock referenced by 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.

The `pthread_spin_trylock`() function will acquire the lock if the lock is not owned by another thread. Otherwise it will fail.

# RETURN VALUES

If successful, `pthread_spin_lock`() and `pthread_spin_trylock`() return zero; otherwise an error number is returned to indicate the error.

# ERRORS

`pthread_spin_lock`() will fail if:

[`EINVAL`]
  The value specified by lock is invalid.
[`EDEADLK`]
  A deadlock condition was detected.

`pthread_spin_trylock`() will fail if:

[`EINVAL`]
  The value specified by lock is invalid.
[`EBUSY`]
  The lock is still in use.
[`EDEADLK`]
  A deadlock condition was detected.

# SEE ALSO

pthread_spin_init(3), pthread_spin_unlock(3)

# STANDARDS

`pthread_spin_lock`() and `pthread_spin_trylock`() conform to IEEE Std 1003.1-2008 (“POSIX.1”).

June 7, 2025 | Debian