65 lines
1.8 KiB
JavaScript
65 lines
1.8 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.SharedMutex = void 0;
|
|
var SharedTimedMutex_1 = require("./SharedTimedMutex");
|
|
/**
|
|
* Shared mutex.
|
|
*
|
|
* @author Jeongho Nam - https://github.com/samchon
|
|
*/
|
|
var SharedMutex = /** @class */ (function () {
|
|
/* ---------------------------------------------------------
|
|
CONSTRUCTOR
|
|
--------------------------------------------------------- */
|
|
/**
|
|
* Default Constructor.
|
|
*/
|
|
function SharedMutex() {
|
|
this.mutex_ = new SharedTimedMutex_1.SharedTimedMutex(this);
|
|
}
|
|
/* ---------------------------------------------------------
|
|
WRITE LOCK
|
|
--------------------------------------------------------- */
|
|
/**
|
|
* @inheritDoc
|
|
*/
|
|
SharedMutex.prototype.lock = function () {
|
|
return this.mutex_.lock();
|
|
};
|
|
/**
|
|
* @inheritDoc
|
|
*/
|
|
SharedMutex.prototype.try_lock = function () {
|
|
return this.mutex_.try_lock();
|
|
};
|
|
/**
|
|
* @inheritDoc
|
|
*/
|
|
SharedMutex.prototype.unlock = function () {
|
|
return this.mutex_.unlock();
|
|
};
|
|
/* ---------------------------------------------------------
|
|
READ LOCK
|
|
--------------------------------------------------------- */
|
|
/**
|
|
* @inheritDoc
|
|
*/
|
|
SharedMutex.prototype.lock_shared = function () {
|
|
return this.mutex_.lock_shared();
|
|
};
|
|
/**
|
|
* @inheritDoc
|
|
*/
|
|
SharedMutex.prototype.try_lock_shared = function () {
|
|
return this.mutex_.try_lock_shared();
|
|
};
|
|
/**
|
|
* @inheritDoc
|
|
*/
|
|
SharedMutex.prototype.unlock_shared = function () {
|
|
return this.mutex_.unlock_shared();
|
|
};
|
|
return SharedMutex;
|
|
}());
|
|
exports.SharedMutex = SharedMutex;
|
|
//# sourceMappingURL=SharedMutex.js.map
|