MultiLoader-Template/node_modules/es-toolkit/dist/promise/mutex.d.ts
3944Realms 768f38fc97 feat: 可使用的构建模板
修改了脚本,使其可以推给Maven仓库
2026-05-03 13:02:19 +08:00

65 lines
1.7 KiB
TypeScript

/**
* A Mutex (mutual exclusion lock) for async functions.
* It allows only one async task to access a critical section at a time.
*
* @example
* 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.
*/
declare class Mutex {
private semaphore;
/**
* Checks if the mutex is currently locked.
* @returns {boolean} True if the mutex is locked, false otherwise.
*
* @example
* const mutex = new Mutex();
* console.log(mutex.isLocked); // false
* await mutex.acquire();
* console.log(mutex.isLocked); // true
* mutex.release();
* console.log(mutex.isLocked); // false
*/
get isLocked(): boolean;
/**
* Acquires the mutex, blocking if necessary until it is available.
* @returns {Promise<void>} A promise that resolves when the mutex is acquired.
*
* @example
* const mutex = new Mutex();
* await mutex.acquire();
* try {
* // This code section cannot be executed simultaneously
* } finally {
* mutex.release();
* }
*/
acquire(): Promise<void>;
/**
* Releases the mutex, allowing another waiting task to proceed.
*
* @example
* const mutex = new Mutex();
* await mutex.acquire();
* try {
* // This code section cannot be executed simultaneously
* } finally {
* mutex.release(); // Allows another waiting task to proceed.
* }
*/
release(): void;
}
export { Mutex };