1# zx_futex_requeue_single_owner 2 3## NAME 4 5<!-- Updated by update-docs-from-abigen, do not edit. --> 6 7futex_requeue_single_owner - Wake some number of threads waiting on a futex, and move more waiters to another wait queue. 8 9## SYNOPSIS 10 11<!-- Updated by update-docs-from-abigen, do not edit. --> 12 13``` 14#include <zircon/syscalls.h> 15 16zx_status_t zx_futex_requeue_single_owner(const zx_futex_t* value_ptr, 17 zx_futex_t current_value, 18 const zx_futex_t* requeue_ptr, 19 uint32_t requeue_count, 20 zx_handle_t new_requeue_owner); 21``` 22 23## DESCRIPTION 24 25See [`zx_futex_requeue()`] for a full description. 26 27## RIGHTS 28 29<!-- Updated by update-docs-from-abigen, do not edit. --> 30 31None. 32 33## RETURN VALUE 34 35`zx_futex_requeue_single_owner()` returns **ZX_OK** on success. 36 37## ERRORS 38 39**ZX_ERR_INVALID_ARGS** One of the following is true: 40+ Either *value_ptr* or *requeue_ptr* is not a valid userspace pointer 41+ Either *value_ptr* or *requeue_ptr* is not aligned to a `sizeof(zx_futex_t)` boundary. 42+ *value_ptr* is the same futex as *requeue_ptr* 43+ *new_requeue_owner* is currently a member of the waiters for either *value_ptr* or *requeue_ptr* 44 45**ZX_ERR_BAD_HANDLE** *new_requeue_owner* is not **ZX_HANDLE_INVALID**, and not a valid handle. 46**ZX_ERR_WRONG_TYPE** *new_requeue_owner* is a valid handle, but is not a handle to a thread. 47**ZX_ERR_BAD_STATE** *current_value* does not match the value at *value_ptr*. 48 49## SEE ALSO 50 51 - [futex objects](../objects/futex.md) 52 - [`zx_futex_requeue()`] 53 - [`zx_futex_wait()`] 54 - [`zx_futex_wake()`] 55 56<!-- References updated by update-docs-from-abigen, do not edit. --> 57 58[`zx_futex_requeue()`]: futex_requeue.md 59[`zx_futex_wait()`]: futex_wait.md 60[`zx_futex_wake()`]: futex_wake.md 61