pub unsafe fn memory_atomic_wait64(
    ptr: *mut i64,
    expression: i64,
    timeout_ns: i64
) -> i32
🔬This is a nightly-only experimental API. (stdsimd #48556)
Available on target_family="wasm" and target feature atomics and WebAssembly only.
Expand description

对应 wasm 的 memory.atomic.wait64 指令

如果 ptr 指向的内存等于 expression (原子执行此操作),则调用此函数时,它将阻塞当前线程。

参数 timeout_ns 是调用线程将被阻塞的最大纳秒数 (如果被阻塞的话)。 如果超时为负,则调用线程将永远被阻塞。

一旦调用线程被阻塞,调用线程只能通过调用 wake 内部函数来唤醒。 一旦线程被阻塞,在 ptr 后面更改内存将不会唤醒线程。

返回值

  • 0 - 表示线程被阻塞,然后被唤醒
  • 1-ptr 的加载值与 expression 不匹配,线程未阻塞
  • 2 - 线程被阻塞,但超时已过期。