Skip to main content

Built and signed on GitHub Actions

A modern JavaScript utility library that's 2-3 times faster and up to 97% smaller—a major upgrade to lodash.

This package works with Cloudflare Workers, Node.js, Deno, Bun, Browsers
This package works with Cloudflare Workers
This package works with Node.js
This package works with Deno
This package works with Bun
This package works with Browsers
JSR Score
100%
Published
2 weeks ago (1.32.0)
class Mutex

A Mutex (mutual exclusion lock) for async functions. It allows only one async task to access a critical section at a time.

Examples

const mutex = new Mutex();

async function criticalSection() { await mutex.acquire(); try { // This code section cannot be executed simultaneously } finally { mutex.release(); } }

criticalSection(); criticalSection(); // This call will wait until the first call releases the mutex.

Properties

Checks if the mutex is currently locked.

Methods

Acquires the mutex, blocking if necessary until it is available.

release(): void

Releases the mutex, allowing another waiting task to proceed.

Add Package

deno add jsr:@es-toolkit/es-toolkit

Import symbol

import { Mutex } from "@es-toolkit/es-toolkit/compat";

---- OR ----

Import directly with a jsr specifier

import { Mutex } from "jsr:@es-toolkit/es-toolkit/compat";

Add Package

npx jsr add @es-toolkit/es-toolkit

Import symbol

import { Mutex } from "@es-toolkit/es-toolkit/compat";

Add Package

yarn dlx jsr add @es-toolkit/es-toolkit

Import symbol

import { Mutex } from "@es-toolkit/es-toolkit/compat";

Add Package

pnpm dlx jsr add @es-toolkit/es-toolkit

Import symbol

import { Mutex } from "@es-toolkit/es-toolkit/compat";

Add Package

bunx jsr add @es-toolkit/es-toolkit

Import symbol

import { Mutex } from "@es-toolkit/es-toolkit/compat";