Function core::arch::wasm32::memory_atomic_wait32[][src]

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

对应 wasm 的 memory.atomic.wait32 指令

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

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

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

返回值

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