// Copyright 2026 Synnax Labs, Inc. // // Use of this software is governed by the Business Source License included in the file // licenses/BSL.txt. // // As of the Change Date specified in that file, in accordance with the Business Source // License, use of this software will be governed by the Apache License, Version 2.0, // included in the file licenses/APL.txt. import { Mutex as Base } from "async-mutex"; export type Mutex = G & Base; export class mutex extends Base { constructor(guard: G) { super(); Object.assign(this, guard); } } export const newMutex = (guard: G): Mutex => new mutex(guard) as Mutex;