12345678910111213141516171819202122232425 |
- 'use strict';
- const Promise = require('../../promise');
- class ResourceLock {
- constructor(resource) {
- this.resource = resource;
- this.previous = Promise.resolve(resource);
- }
- unwrap() {
- return this.resource;
- }
- lock() {
- const lock = this.previous;
- let resolve;
- this.previous = new Promise(r => {
- resolve = r;
- });
- return lock.disposer(resolve);
- }
- }
- module.exports = ResourceLock;
|