Atomics.isLockFree()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since December 2021.

The Atomics.isLockFree() static method is used to determine whether the Atomics methods use locks or atomic hardware operations when applied to typed arrays with the given element byte size. It is intended as an optimization primitive, so that high-performance algorithms can determine whether to use locks or atomic operations in critical sections. If an atomic primitive is not lock-free, it is often more efficient for an algorithm to provide its own locking.

Try it

Syntax

js
Atomics.isLockFree(size)

Parameters

size

The size in bytes to check.

Return value

A true or false value indicating whether the operation is lock free.

  • Always true if size is 4, because all known platforms support 4-byte atomic operations.
  • Always false if the given size is not one of the BYTES_PER_ELEMENT property of integer TypedArray types.

Examples

Using isLockFree

js
Atomics.isLockFree(1); // true (platform-dependent)
Atomics.isLockFree(2); // true (platform-dependent)
Atomics.isLockFree(3); // false
Atomics.isLockFree(4); // true
Atomics.isLockFree(5); // false
Atomics.isLockFree(6); // false
Atomics.isLockFree(7); // false
Atomics.isLockFree(8); // true (platform-dependent)

Specifications

Specification
ECMAScript Language Specification
# sec-atomics.islockfree

Browser compatibility

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
isLockFree

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

See also