API Reference Source

lib/dialects/mssql/resource-lock.js

  1. 'use strict';
  2.  
  3. const Promise = require('../../promise');
  4.  
  5. class ResourceLock {
  6. constructor(resource) {
  7. this.resource = resource;
  8. this.previous = Promise.resolve(resource);
  9. }
  10.  
  11. unwrap() {
  12. return this.resource;
  13. }
  14.  
  15. lock() {
  16. const lock = this.previous;
  17. let resolve;
  18. this.previous = new Promise(r => {
  19. resolve = r;
  20. });
  21. return lock.disposer(resolve);
  22. }
  23. }
  24.  
  25. module.exports = ResourceLock;