总结
获取 Futex 的当前 koid 所有者(如果有)。
声明
#include <zircon/syscalls.h>
zx_status_t zx_futex_get_owner(const zx_futex_t* value_ptr, zx_koid_t* koid);
说明
获取由 value_ptr 标识的 futex 当前所有者的 koid;如果没有当前所有者,则获取 ZX_KOID_INVALID
。从 futex 构建同步基元时,了解 futex 的所有权通常没什么用处。此系统调用主要用于测试。
如需了解详情,请参阅 futex 中的所有权和优先级继承。
权限
无。
返回值
zx_futex_get_owner()
在成功时返回 ZX_OK
,Kids 会在系统调用时拥有 futex 的所有者,如果没有所有者,则返回 ZX_KOID_INVALID
。
错误
ZX_ERR_INVALID_ARGS
以下情况之一为 true:
- value_ptr 不是有效的用户空间指针。
- value_ptr 未与
sizeof(zx_futex_t)
边界对齐。 - koid 不是有效的用户空间指针。