Spaces:
Runtime error
Runtime error
| ; | |
| Object.defineProperty(exports, "__esModule", { value: true }); | |
| var tslib_1 = require("tslib"); | |
| var Semaphore_1 = require("./Semaphore"); | |
| var Mutex = /** @class */ (function () { | |
| function Mutex(cancelError) { | |
| this._semaphore = new Semaphore_1.default(1, cancelError); | |
| } | |
| Mutex.prototype.acquire = function () { | |
| return (0, tslib_1.__awaiter)(this, void 0, void 0, function () { | |
| var _a, releaser; | |
| return (0, tslib_1.__generator)(this, function (_b) { | |
| switch (_b.label) { | |
| case 0: return [4 /*yield*/, this._semaphore.acquire()]; | |
| case 1: | |
| _a = _b.sent(), releaser = _a[1]; | |
| return [2 /*return*/, releaser]; | |
| } | |
| }); | |
| }); | |
| }; | |
| Mutex.prototype.runExclusive = function (callback) { | |
| return this._semaphore.runExclusive(function () { return callback(); }); | |
| }; | |
| Mutex.prototype.isLocked = function () { | |
| return this._semaphore.isLocked(); | |
| }; | |
| Mutex.prototype.waitForUnlock = function () { | |
| return this._semaphore.waitForUnlock(); | |
| }; | |
| /** @deprecated Deprecated in 0.3.0, will be removed in 0.4.0. Use runExclusive instead. */ | |
| Mutex.prototype.release = function () { | |
| this._semaphore.release(); | |
| }; | |
| Mutex.prototype.cancel = function () { | |
| return this._semaphore.cancel(); | |
| }; | |
| return Mutex; | |
| }()); | |
| exports.default = Mutex; | |