Function core::arch::wasm64::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

Corresponding intrinsic to wasm’s memory.atomic.wait32 instruction

This function, when called, will block the current thread if the memory pointed to by ptr is equal to expression (performing this action atomically).

The argument timeout_ns is a maxinum number of nanoseconds the calling thread will be blocked for, if it blocks. If the timeout is negative then the calling thread will be blocked forever.

The calling thread can only be woken up with a call to the wake intrinsic once it has been blocked. Changing the memory behind ptr will not wake the thread once it’s blocked.

Return value

  • 0 - indicates that the thread blocked and then was woken up
  • 1 - the loaded value from ptr didn’t match expression, the thread didn’t block
  • 2 - the thread blocked, but the timeout expired.