Wake some number of threads waiting on a futex, and move more waiters to another wait queue.
#include <zircon/syscalls.h> zx_status_t zx_futex_requeue_single_owner(const zx_futex_t* value_ptr, zx_futex_t current_value, const zx_futex_t* requeue_ptr, uint32_t requeue_count, zx_handle_t new_requeue_owner);
zx_futex_requeue() for a full description.
zx_futex_requeue_single_owner() returns ZX_OK on success.
ZX_ERR_INVALID_ARGS One of the following is true:
- Either value_ptr or requeue_ptr is not a valid userspace pointer
- Either value_ptr or requeue_ptr is not aligned to a
- value_ptr is the same futex as requeue_ptr
- new_requeue_owner is currently a member of the waiters for either value_ptr or requeue_ptr
ZX_ERR_BAD_HANDLE new_requeue_owner is not ZX_HANDLE_INVALID, and not a valid handle.
ZX_ERR_WRONG_TYPE new_requeue_owner is a valid handle, but is not a handle to a thread.
ZX_ERR_BAD_STATE current_value does not match the value at value_ptr.
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2020-02-10.