Function futex2_requeue [src]
Wake and/or requeue waiter(s) from one futex to another.
Identical to FUTEX.CMP_REQUEUE, except it is part of the futex2 family of calls.
Requires at least kernel v6.7.
Prototype
pub fn futex2_requeue( waiters: [*]const futex2_waitone, flags: FUTEX2_FLAGS_REQUEUE, nr_wake: i32, nr_requeue: i32, ) usize Parameters
waiters: [*]const futex2_waitoneThe source and destination futexes. Must be a 2-element array.
flags: FUTEX2_FLAGS_REQUEUECurrently unused.
nr_wake: i32Maximum number of waiters to wake on the source futex.
nr_requeue: i32Maximum number of waiters to transfer to the destination futex.
Source
pub fn futex2_requeue(
/// The source and destination futexes. Must be a 2-element array.
waiters: [*]const futex2_waitone,
/// Currently unused.
flags: FUTEX2_FLAGS_REQUEUE,
/// Maximum number of waiters to wake on the source futex.
nr_wake: i32,
/// Maximum number of waiters to transfer to the destination futex.
nr_requeue: i32,
) usize {
return syscall4(
.futex_requeue,
@intFromPtr(waiters),
@as(u32, @bitCast(flags)),
@as(u32, @bitCast(nr_wake)),
@as(u32, @bitCast(nr_requeue)),
);
}