Files

60 lines
1.2 KiB
TypeScript

import { ISharedTimedLockable } from "../base/thread/ISharedTimedLockable";
/**
* Shared timed mutex.
*
* @author Jeongho Nam - https://github.com/samchon
*/
export declare class SharedTimedMutex implements ISharedTimedLockable {
private source_;
private queue_;
private writing_;
private reading_;
/**
* Default Constructor.
*/
constructor();
private _Current_access_type;
/**
* @inheritDoc
*/
lock(): Promise<void>;
/**
* @inheritDoc
*/
try_lock(): Promise<boolean>;
/**
* @inheritDoc
*/
try_lock_for(ms: number): Promise<boolean>;
/**
* @inheritDoc
*/
try_lock_until(at: Date): Promise<boolean>;
/**
* @inheritDoc
*/
unlock(): Promise<void>;
/**
* @inheritDoc
*/
lock_shared(): Promise<void>;
/**
* @inheritDoc
*/
try_lock_shared(): Promise<boolean>;
/**
* @inheritDoc
*/
try_lock_shared_for(ms: number): Promise<boolean>;
/**
* @inheritDoc
*/
try_lock_shared_until(at: Date): Promise<boolean>;
/**
* @inheritDoc
*/
unlock_shared(): Promise<void>;
private _Release;
private _Cancel;
}