zxfutex_wake

总结

唤醒一些正在等待 futex 的线程,并将 futex 的所有权设为无。

声明

#include <zircon/syscalls.h>

zx_status_t zx_futex_wake(const zx_futex_t* value_ptr, uint32_t wake_count);

说明

唤醒 futex 会导致等待 value_ptr futex 的 wake_count 线程被唤醒。

唤醒零个线程不是错误条件。为 value_ptr 传入未分配的地址不会导致错误。

所有权

成功调用 zx_futex_wake() 会导致 futex 的所有者被设为无任何值,无论唤醒计数是多少。如需转移 futex 的所有权,请改用 zx_futex_wake_single_owner() 变体。zx_futex_wake_single_owner() 会尝试从 futex 等待队列中仅唤醒一个线程。如果至少有一个线程要唤醒,futex 的所有者将被设置为被唤醒的线程。否则,该 futex 没有所有者。

如需了解详情,请参阅 futex 中的所有权和优先级继承

权限

无。

返回值

zx_futex_wake() 会在成功时返回 ZX_OK

错误

ZX_ERR_INVALID_ARGS value_ptr 未对齐。

另请参阅