Summary
Fetch the koid current owner of a futex, if any.
Declaration
#include <zircon/syscalls.h>
zx_status_t zx_futex_get_owner(const zx_futex_t* value_ptr, zx_koid_t* koid);
Description
Fetch the koid of the current owner of the futex identified by value_ptr, or
ZX_KOID_INVALID
if there is no current owner. Knowledge of the ownership of
a futex typically serves no purpose when building synchronization primitives
from futexes. This syscall is used primarily for testing.
See Ownership and Priority Inheritance in futex for details.
Rights
None.
Return value
zx_futex_get_owner()
returns ZX_OK
on success, and koids hold the owner of
the futex at the time of the syscall, or ZX_KOID_INVALID
if there was no
owner.
Errors
ZX_ERR_INVALID_ARGS
One of the following is true:
- value_ptr is not a valid userspace pointer.
- value_ptr is not aligned to a
sizeof(zx_futex_t)
boundary. - koid is not a valid userspace pointer.