Module futex

Source
Available on crate feature thread only.
Expand description

Linux futex.

Futex is a very low-level mechanism for implementing concurrency primitives such as mutexes, rwlocks, and condvars.

§Examples

use rustix::thread::futex;
use std::sync::atomic::AtomicU32;

// Wake up one waiter.
futex::wake(futex, futex::Flags::PRIVATE, 1)?;

§References

Structs§

Flags
FUTEX_* flags for use with the functions in futex.

Enums§

WakeOp
FUTEX_OP_* operations for use with wake_op.
WakeOpCmp
FUTEX_OP_CMP_* operations for use with wake_op.

Constants§

OWNER_DIED
FUTEX_OWNER_DIED
WAITERS
FUTEX_WAITERS

Functions§

cmp_requeue
Equivalent to syscall(SYS_futex, uaddr, FUTEX_CMP_REQUEUE, val, val2, uaddr2, val3)
cmp_requeue_pi
Equivalent to syscall(SYS_futex, uaddr, FUTEX_CMP_REQUEUE_PI, 1, val2, uaddr2, val3)
fd
Equivalent to syscall(SYS_futex, uaddr, FUTEX_FD, val, NULL, NULL, 0)
lock_pi
Equivalent to syscall(SYS_futex, uaddr, FUTEX_LOCK_PI, 0, timeout, NULL, 0)
lock_pi2
Equivalent to syscall(SYS_futex, uaddr, FUTEX_LOCK_PI2, 0, timeout, NULL, 0)
requeue
Equivalent to syscall(SYS_futex, uaddr, FUTEX_REQUEUE, val, val2, uaddr2, 0)
trylock_pi
Equivalent to syscall(SYS_futex, uaddr, FUTEX_TRYLOCK_PI, 0, NULL, NULL, 0)
unlock_pi
Equivalent to syscall(SYS_futex, uaddr, FUTEX_UNLOCK_PI, 0, NULL, NULL, 0)
wait
Equivalent to syscall(SYS_futex, uaddr, FUTEX_WAIT, val, timeout, NULL, 0)
wait_bitset
Equivalent to syscall(SYS_futex, uaddr, FUTEX_WAIT_BITSET, val, timeout, NULL, val3)
wait_requeue_pi
Equivalent to syscall(SYS_futex, uaddr, FUTEX_WAIT_REQUEUE_PI, val, timeout, uaddr2, 0)
wake
Equivalent to syscall(SYS_futex, uaddr, FUTEX_WAKE, val, NULL, NULL, 0)
wake_bitset
Equivalent to syscall(SYS_futex, uaddr, FUTEX_WAKE_BITSET, val, NULL, NULL, val3)
wake_op
Equivalent to syscall(SYS_futex, uaddr, FUTEX_WAKE_OP, val, val2, uaddr2, val3)

Type Aliases§

Nsecs
A type for the tv_sec field of Timespec.
Secs
A type for the tv_sec field of Timespec.
Timespec
struct timespec