mini-semaphore 1.3.16 → 1.3.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/deque.js +18 -18
- package/cjs/index.d.ts +1 -1
- package/cjs/index.js +1 -1
- package/esm/deque.mjs +18 -18
- package/esm/index.d.mts +1 -1
- package/esm/index.mjs +1 -1
- package/index.d.ts +1 -1
- package/package.json +1 -1
- package/umd/index.d.ts +1 -1
- package/umd/index.js +3 -3
- package/webpack/index.d.ts +1 -1
- package/webpack/index.js +2 -2
- package/webpack-esm/index.d.mts +1 -1
- package/webpack-esm/index.mjs +2 -2
package/cjs/deque.js
CHANGED
|
@@ -23,26 +23,28 @@ const am = (src, si, dst, di, len) => {
|
|
|
23
23
|
*/
|
|
24
24
|
const p2l = (n) => {
|
|
25
25
|
n = n >>> 0;
|
|
26
|
-
n
|
|
27
|
-
n
|
|
28
|
-
n
|
|
29
|
-
n
|
|
30
|
-
n
|
|
31
|
-
n
|
|
26
|
+
n--;
|
|
27
|
+
n |= n >> 1;
|
|
28
|
+
n |= n >> 2;
|
|
29
|
+
n |= n >> 4;
|
|
30
|
+
n |= n >> 8;
|
|
31
|
+
n |= n >> 16;
|
|
32
32
|
return n + 1;
|
|
33
33
|
};
|
|
34
34
|
/**
|
|
35
35
|
* getCapacity
|
|
36
|
-
* @param {number
|
|
36
|
+
* @param {number} n
|
|
37
37
|
*/
|
|
38
38
|
const gc = (n) => {
|
|
39
|
-
// @ts-ignore typescript cannot allow (undefined | 0) expression
|
|
40
39
|
return p2l(Math.min(Math.max(16, n | 0), 1073741824));
|
|
41
40
|
};
|
|
42
41
|
/**
|
|
43
42
|
* ### Implementation restricted to FIFO
|
|
44
43
|
*
|
|
45
|
-
*
|
|
44
|
+
* This class uses a ring buffer for efficient FIFO operations.
|
|
45
|
+
* The maximum buffer size is **`1073741824`**.
|
|
46
|
+
*
|
|
47
|
+
* This class is based on https://github.com/petkaantonov/deque/blob/master/js/deque.js
|
|
46
48
|
* Released under the MIT License: https://github.com/petkaantonov/deque/blob/master/LICENSE
|
|
47
49
|
*
|
|
48
50
|
* @template {any} T
|
|
@@ -55,19 +57,20 @@ class Deque {
|
|
|
55
57
|
constructor(ic) {
|
|
56
58
|
/**
|
|
57
59
|
* capacity
|
|
58
|
-
* @type {number}
|
|
59
60
|
*/
|
|
60
|
-
this._c = gc(ic);
|
|
61
|
+
this._c = gc(ic || 16);
|
|
61
62
|
/**
|
|
62
63
|
* current length (size
|
|
63
|
-
* @type {number}
|
|
64
64
|
*/
|
|
65
65
|
this._l = 0;
|
|
66
66
|
/**
|
|
67
67
|
* current front position
|
|
68
|
-
* @type {number}
|
|
69
68
|
*/
|
|
70
69
|
this._f = 0;
|
|
70
|
+
/**
|
|
71
|
+
*
|
|
72
|
+
*/
|
|
73
|
+
this.length = 0;
|
|
71
74
|
/**
|
|
72
75
|
* @type {T[]}
|
|
73
76
|
*/
|
|
@@ -83,7 +86,7 @@ class Deque {
|
|
|
83
86
|
}
|
|
84
87
|
const i = (this._f + l) & (this._c - 1);
|
|
85
88
|
this._a[i] = s;
|
|
86
|
-
this._l = l + 1;
|
|
89
|
+
this.length = this._l = l + 1;
|
|
87
90
|
}
|
|
88
91
|
shift() {
|
|
89
92
|
const l = this._l;
|
|
@@ -95,12 +98,9 @@ class Deque {
|
|
|
95
98
|
const r = this._a[f];
|
|
96
99
|
this._a[f] = /** @type {T} */ (void 0);
|
|
97
100
|
this._f = (f + 1) & (this._c - 1);
|
|
98
|
-
this._l = l - 1;
|
|
101
|
+
this.length = this._l = l - 1;
|
|
99
102
|
return r;
|
|
100
103
|
}
|
|
101
|
-
get length() {
|
|
102
|
-
return this._l;
|
|
103
|
-
}
|
|
104
104
|
}
|
|
105
105
|
exports.Deque = Deque;
|
|
106
106
|
/**
|
package/cjs/index.d.ts
CHANGED
package/cjs/index.js
CHANGED
|
@@ -9,4 +9,4 @@ var deque_1 = require("./deque");
|
|
|
9
9
|
Object.defineProperty(exports, "Deque", { enumerable: true, get: function () { return deque_1.Deque; } });
|
|
10
10
|
var flow_restrictor_1 = require("./flow-restrictor");
|
|
11
11
|
Object.defineProperty(exports, "restrictor", { enumerable: true, get: function () { return flow_restrictor_1.restrictor; } });
|
|
12
|
-
exports.version = "v1.3.
|
|
12
|
+
exports.version = "v1.3.17";
|
package/esm/deque.mjs
CHANGED
|
@@ -20,26 +20,28 @@ const am = (src, si, dst, di, len) => {
|
|
|
20
20
|
*/
|
|
21
21
|
const p2l = (n) => {
|
|
22
22
|
n = n >>> 0;
|
|
23
|
-
n
|
|
24
|
-
n
|
|
25
|
-
n
|
|
26
|
-
n
|
|
27
|
-
n
|
|
28
|
-
n
|
|
23
|
+
n--;
|
|
24
|
+
n |= n >> 1;
|
|
25
|
+
n |= n >> 2;
|
|
26
|
+
n |= n >> 4;
|
|
27
|
+
n |= n >> 8;
|
|
28
|
+
n |= n >> 16;
|
|
29
29
|
return n + 1;
|
|
30
30
|
};
|
|
31
31
|
/**
|
|
32
32
|
* getCapacity
|
|
33
|
-
* @param {number
|
|
33
|
+
* @param {number} n
|
|
34
34
|
*/
|
|
35
35
|
const gc = (n) => {
|
|
36
|
-
// @ts-ignore typescript cannot allow (undefined | 0) expression
|
|
37
36
|
return p2l(Math.min(Math.max(16, n | 0), 1073741824));
|
|
38
37
|
};
|
|
39
38
|
/**
|
|
40
39
|
* ### Implementation restricted to FIFO
|
|
41
40
|
*
|
|
42
|
-
*
|
|
41
|
+
* This class uses a ring buffer for efficient FIFO operations.
|
|
42
|
+
* The maximum buffer size is **`1073741824`**.
|
|
43
|
+
*
|
|
44
|
+
* This class is based on https://github.com/petkaantonov/deque/blob/master/js/deque.js
|
|
43
45
|
* Released under the MIT License: https://github.com/petkaantonov/deque/blob/master/LICENSE
|
|
44
46
|
*
|
|
45
47
|
* @template {any} T
|
|
@@ -52,19 +54,20 @@ export class Deque {
|
|
|
52
54
|
constructor(ic) {
|
|
53
55
|
/**
|
|
54
56
|
* capacity
|
|
55
|
-
* @type {number}
|
|
56
57
|
*/
|
|
57
|
-
this._c = gc(ic);
|
|
58
|
+
this._c = gc(ic || 16);
|
|
58
59
|
/**
|
|
59
60
|
* current length (size
|
|
60
|
-
* @type {number}
|
|
61
61
|
*/
|
|
62
62
|
this._l = 0;
|
|
63
63
|
/**
|
|
64
64
|
* current front position
|
|
65
|
-
* @type {number}
|
|
66
65
|
*/
|
|
67
66
|
this._f = 0;
|
|
67
|
+
/**
|
|
68
|
+
*
|
|
69
|
+
*/
|
|
70
|
+
this.length = 0;
|
|
68
71
|
/**
|
|
69
72
|
* @type {T[]}
|
|
70
73
|
*/
|
|
@@ -80,7 +83,7 @@ export class Deque {
|
|
|
80
83
|
}
|
|
81
84
|
const i = (this._f + l) & (this._c - 1);
|
|
82
85
|
this._a[i] = s;
|
|
83
|
-
this._l = l + 1;
|
|
86
|
+
this.length = this._l = l + 1;
|
|
84
87
|
}
|
|
85
88
|
shift() {
|
|
86
89
|
const l = this._l;
|
|
@@ -92,12 +95,9 @@ export class Deque {
|
|
|
92
95
|
const r = this._a[f];
|
|
93
96
|
this._a[f] = /** @type {T} */ (void 0);
|
|
94
97
|
this._f = (f + 1) & (this._c - 1);
|
|
95
|
-
this._l = l - 1;
|
|
98
|
+
this.length = this._l = l - 1;
|
|
96
99
|
return r;
|
|
97
100
|
}
|
|
98
|
-
get length() {
|
|
99
|
-
return this._l;
|
|
100
|
-
}
|
|
101
101
|
}
|
|
102
102
|
/**
|
|
103
103
|
* resize to
|
package/esm/index.d.mts
CHANGED
package/esm/index.mjs
CHANGED
package/index.d.ts
CHANGED
package/package.json
CHANGED
package/umd/index.d.ts
CHANGED
package/umd/index.js
CHANGED
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
((e,t)=>{'object'==typeof exports&&'object'==typeof module?module.exports=t():'function'==typeof define&&define.amd?define([],t):'object'==typeof exports?exports.MiniSema=t():e.MiniSema=t()})(globalThis,(()=>(()=>{"use strict";var e={139:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.create=void 0;const r=i(461),n=i(761),s=r.acquire,o=r.release;t.create=e=>({capacity:e,limit:e,q:new n.Deque(e),acquire(e){return s(this,e)},release(){o(this)},setRestriction(e){this.limit=this.capacity=e},get pending(){return this.q.length},async flow(e,t){await s(this,t);try{return await e()}finally{o(this)}}})},461:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.release=t.acquire=void 0;const i=()=>{
|
|
3
3
|
throw new Error("mini-semaphore: Detected an inconsistent state, possibly due to a logic error or unexpected behavior.")},r=(e,t)=>{e.capacity>0?(e.capacity--,t()):e.q.push(t)};t.acquire=(e,t=!0)=>new Promise((i=>{t?setTimeout((()=>r(e,i)),4):r(e,i)}));t.release=e=>{let t;(t=e.q).length?(t.shift()||i)():e.capacity++,e.capacity>e.limit&&(console.warn("inconsistent release!"),e.capacity=e.limit)}},464:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.restrictor=void 0;const r=i(518);t.restrictor=(()=>{const{MiniSemaphore:e}=r,t=new e(1);let i=Object.create(null);async function n(r,n,s){const o=await(async(r,n)=>{await t.acquire(!1);let s=i[r];if(s||(i[r]=s=new e(n)),s.limit!==n)throw t.release(),
|
|
4
4
|
new ReferenceError(`Cannot get object with different restriction: key: '${String(r)}', lock.limit: ${s.limit} <-> restriction: ${n},`);return t.release(),s})(r,n),a=o.flow(s);return o.last=Date.now(),a}return{getLockByKey:async e=>{await t.acquire(!1);const r=i[e];return t.release(),r},cleanup:async(e,r)=>{await t.acquire(!1);const n=i,s=Object.create(null),o=Object.keys(n);let a,c=0;!e&&(e=1),e*=1e3,r&&(a=[]);for(let t=0,i=o.length;t<i;){const i=o[t++],l=n[i];l.last&&Date.now()-l.last>=e?(c++,r&&a.push(i)):s[i]=l}return i=s,t.release(),r&&console.log(`eliminated: [\n${a.join(",\n")}\n]\nlived: [\n${Object.keys(s).join(",\n")}\n]`),c},multi:n,one:async function(e,t){return n(e,1,t)}}})()},518:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.MiniSemaphore=void 0
|
|
5
|
-
;const r=i(461),n=i(761),s=r.acquire,o=r.release;t.MiniSemaphore=class{constructor(e){this.limit=this.capacity=e,this.q=new n.Deque(e)}acquire(e){return s(this,e)}release(){o(this)}setRestriction(e){this.limit=this.capacity=e}get pending(){return this.q.length}async flow(e,t){await s(this,t);try{return await e()}finally{o(this)}}}},761:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Deque=void 0;const i=e=>(e=>(e>>>=0,e
|
|
6
|
-
;return this._a[t]=void 0,this._f=t+1&this._c-1,this._l=e-1,i}
|
|
7
|
-
return s.Deque}});var o=i(464);Object.defineProperty(e,"restrictor",{enumerable:!0,get:function(){return o.restrictor}}),e.version="v1.3.
|
|
5
|
+
;const r=i(461),n=i(761),s=r.acquire,o=r.release;t.MiniSemaphore=class{constructor(e){this.limit=this.capacity=e,this.q=new n.Deque(e)}acquire(e){return s(this,e)}release(){o(this)}setRestriction(e){this.limit=this.capacity=e}get pending(){return this.q.length}async flow(e,t){await s(this,t);try{return await e()}finally{o(this)}}}},761:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Deque=void 0;const i=e=>(e=>(e>>>=0,e--,e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,1+(e|=e>>16)))(Math.min(Math.max(16,0|e),1073741824));t.Deque=class{constructor(e){this._c=i(e||16),this._l=0,this._f=0,this.length=0,this._a=[]}push(e){const t=this._l;this._c<t+1&&r(this,i(1.5*this._c+16));const n=this._f+t&this._c-1;this._a[n]=e,this.length=this._l=t+1}shift(){const e=this._l;if(0===e)return
|
|
6
|
+
;const t=this._f,i=this._a[t];return this._a[t]=void 0,this._f=t+1&this._c-1,this.length=this._l=e-1,i}};const r=(e,t)=>{const i=e._c;e._c=t;const r=e._f+e._l;if(r>i){const t=r&i-1;((e,t,i,r,n)=>{for(let s=0;s<n;++s)i[s+r]=e[s+t],e[s+t]=void 0})(e._a,0,e._a,i,t)}}}},t={};function i(r){var n=t[r];if(void 0!==n)return n.exports;var s=t[r]={exports:{}};return e[r](s,s.exports,i),s.exports}var r={};return(()=>{var e=r;Object.defineProperty(e,"__esModule",{value:!0}),e.version=e.restrictor=e.Deque=e.create=e.MiniSemaphore=void 0;var t=i(518);Object.defineProperty(e,"MiniSemaphore",{enumerable:!0,get:function(){return t.MiniSemaphore}});var n=i(139);Object.defineProperty(e,"create",{enumerable:!0,get:function(){return n.create}});var s=i(761);Object.defineProperty(e,"Deque",{enumerable:!0,
|
|
7
|
+
get:function(){return s.Deque}});var o=i(464);Object.defineProperty(e,"restrictor",{enumerable:!0,get:function(){return o.restrictor}}),e.version="v1.3.17"})(),r})()));
|
package/webpack/index.d.ts
CHANGED
package/webpack/index.js
CHANGED
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
(()=>{"use strict";var e={139:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.create=void 0;const r=i(461),n=i(761),s=r.acquire,a=r.release;t.create=e=>({capacity:e,limit:e,q:new n.Deque(e),acquire(e){return s(this,e)},release(){a(this)},setRestriction(e){this.limit=this.capacity=e},get pending(){return this.q.length},async flow(e,t){await s(this,t);try{return await e()}finally{a(this)}}})},461:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.release=t.acquire=void 0;const i=()=>{throw new Error("mini-semaphore: Detected an inconsistent state, possibly due to a logic error or unexpected behavior.")},r=(e,t)=>{e.capacity>0?(e.capacity--,t()):e.q.push(t)};t.acquire=(e,t=!0)=>new Promise((i=>{t?setTimeout((()=>r(e,i)),4):r(e,i)}));t.release=e=>{let t
|
|
3
3
|
;(t=e.q).length?(t.shift()||i)():e.capacity++,e.capacity>e.limit&&(console.warn("inconsistent release!"),e.capacity=e.limit)}},464:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.restrictor=void 0;const r=i(518);t.restrictor=(()=>{const{MiniSemaphore:e}=r,t=new e(1);let i=Object.create(null);async function n(r,n,s){const a=await(async(r,n)=>{await t.acquire(!1);let s=i[r];if(s||(i[r]=s=new e(n)),s.limit!==n)throw t.release(),new ReferenceError(`Cannot get object with different restriction: key: '${String(r)}', lock.limit: ${s.limit} <-> restriction: ${n},`);return t.release(),s})(r,n),c=a.flow(s);return a.last=Date.now(),c}return{getLockByKey:async e=>{await t.acquire(!1);const r=i[e];return t.release(),r},cleanup:async(e,r)=>{await t.acquire(!1)
|
|
4
4
|
;const n=i,s=Object.create(null),a=Object.keys(n);let c,o=0;!e&&(e=1),e*=1e3,r&&(c=[]);for(let t=0,i=a.length;t<i;){const i=a[t++],l=n[i];l.last&&Date.now()-l.last>=e?(o++,r&&c.push(i)):s[i]=l}return i=s,t.release(),r&&console.log(`eliminated: [\n${c.join(",\n")}\n]\nlived: [\n${Object.keys(s).join(",\n")}\n]`),o},multi:n,one:async function(e,t){return n(e,1,t)}}})()},518:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.MiniSemaphore=void 0;const r=i(461),n=i(761),s=r.acquire,a=r.release;t.MiniSemaphore=class{constructor(e){this.limit=this.capacity=e,this.q=new n.Deque(e)}acquire(e){return s(this,e)}release(){a(this)}setRestriction(e){this.limit=this.capacity=e}get pending(){return this.q.length}async flow(e,t){await s(this,t);try{return await e()}finally{a(this)}}}},
|
|
5
|
-
761:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Deque=void 0;const i=e=>(e=>(e>>>=0,e
|
|
6
|
-
;return e[r](s,s.exports,i),s.exports}var r={};(()=>{var e=r;Object.defineProperty(e,"__esModule",{value:!0}),e.version=e.restrictor=e.Deque=e.create=e.MiniSemaphore=void 0;var t=i(518);Object.defineProperty(e,"MiniSemaphore",{enumerable:!0,get:function(){return t.MiniSemaphore}});var n=i(139);Object.defineProperty(e,"create",{enumerable:!0,get:function(){return n.create}});var s=i(761);Object.defineProperty(e,"Deque",{enumerable:!0,get:function(){return s.Deque}});var a=i(464);Object.defineProperty(e,"restrictor",{enumerable:!0,get:function(){return a.restrictor}}),e.version="v1.3.
|
|
5
|
+
761:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Deque=void 0;const i=e=>(e=>(e>>>=0,e--,e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,1+(e|=e>>16)))(Math.min(Math.max(16,0|e),1073741824));t.Deque=class{constructor(e){this._c=i(e||16),this._l=0,this._f=0,this.length=0,this._a=[]}push(e){const t=this._l;this._c<t+1&&r(this,i(1.5*this._c+16));const n=this._f+t&this._c-1;this._a[n]=e,this.length=this._l=t+1}shift(){const e=this._l;if(0===e)return;const t=this._f,i=this._a[t];return this._a[t]=void 0,this._f=t+1&this._c-1,this.length=this._l=e-1,i}};const r=(e,t)=>{const i=e._c;e._c=t;const r=e._f+e._l;if(r>i){const t=r&i-1;((e,t,i,r,n)=>{for(let s=0;s<n;++s)i[s+r]=e[s+t],e[s+t]=void 0})(e._a,0,e._a,i,t)}}}},t={};function i(r){var n=t[r];if(void 0!==n)return n.exports;var s=t[r]={exports:{}}
|
|
6
|
+
;return e[r](s,s.exports,i),s.exports}var r={};(()=>{var e=r;Object.defineProperty(e,"__esModule",{value:!0}),e.version=e.restrictor=e.Deque=e.create=e.MiniSemaphore=void 0;var t=i(518);Object.defineProperty(e,"MiniSemaphore",{enumerable:!0,get:function(){return t.MiniSemaphore}});var n=i(139);Object.defineProperty(e,"create",{enumerable:!0,get:function(){return n.create}});var s=i(761);Object.defineProperty(e,"Deque",{enumerable:!0,get:function(){return s.Deque}});var a=i(464);Object.defineProperty(e,"restrictor",{enumerable:!0,get:function(){return a.restrictor}}),e.version="v1.3.17"})(),module.exports=r})();
|
package/webpack-esm/index.d.mts
CHANGED
package/webpack-esm/index.mjs
CHANGED
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
var e={139:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.create=void 0;const r=i(461),n=i(761),s=r.acquire,a=r.release;t.create=e=>({capacity:e,limit:e,q:new n.Deque(e),acquire(e){return s(this,e)},release(){a(this)},setRestriction(e){this.limit=this.capacity=e},get pending(){return this.q.length},async flow(e,t){await s(this,t);try{return await e()}finally{a(this)}}})},461:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.release=t.acquire=void 0;const i=()=>{throw new Error("mini-semaphore: Detected an inconsistent state, possibly due to a logic error or unexpected behavior.")},r=(e,t)=>{e.capacity>0?(e.capacity--,t()):e.q.push(t)};t.acquire=(e,t=!0)=>new Promise((i=>{t?setTimeout((()=>r(e,i)),4):r(e,i)}));t.release=e=>{let t
|
|
3
3
|
;(t=e.q).length?(t.shift()||i)():e.capacity++,e.capacity>e.limit&&(console.warn("inconsistent release!"),e.capacity=e.limit)}},464:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.restrictor=void 0;const r=i(518);t.restrictor=(()=>{const{MiniSemaphore:e}=r,t=new e(1);let i=Object.create(null);async function n(r,n,s){const a=await(async(r,n)=>{await t.acquire(!1);let s=i[r];if(s||(i[r]=s=new e(n)),s.limit!==n)throw t.release(),new ReferenceError(`Cannot get object with different restriction: key: '${String(r)}', lock.limit: ${s.limit} <-> restriction: ${n},`);return t.release(),s})(r,n),c=a.flow(s);return a.last=Date.now(),c}return{getLockByKey:async e=>{await t.acquire(!1);const r=i[e];return t.release(),r},cleanup:async(e,r)=>{await t.acquire(!1)
|
|
4
4
|
;const n=i,s=Object.create(null),a=Object.keys(n);let c,o=0;!e&&(e=1),e*=1e3,r&&(c=[]);for(let t=0,i=a.length;t<i;){const i=a[t++],l=n[i];l.last&&Date.now()-l.last>=e?(o++,r&&c.push(i)):s[i]=l}return i=s,t.release(),r&&console.log(`eliminated: [\n${c.join(",\n")}\n]\nlived: [\n${Object.keys(s).join(",\n")}\n]`),o},multi:n,one:async function(e,t){return n(e,1,t)}}})()},518:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.MiniSemaphore=void 0;const r=i(461),n=i(761),s=r.acquire,a=r.release;t.MiniSemaphore=class{constructor(e){this.limit=this.capacity=e,this.q=new n.Deque(e)}acquire(e){return s(this,e)}release(){a(this)}setRestriction(e){this.limit=this.capacity=e}get pending(){return this.q.length}async flow(e,t){await s(this,t);try{return await e()}finally{a(this)}}}},
|
|
5
|
-
761:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Deque=void 0;const i=e=>(e=>(e>>>=0,e
|
|
6
|
-
;return e[r](s,s.exports,i),s.exports}var r={};(()=>{var e=r;Object.defineProperty(e,"BJ",{value:!0}),e.rE=e.Ws=e.Jj=e.vt=e.C=void 0;var t=i(518);Object.defineProperty(e,"C",{enumerable:!0,get:function(){return t.MiniSemaphore}});var n=i(139);Object.defineProperty(e,"vt",{enumerable:!0,get:function(){return n.create}});var s=i(761);Object.defineProperty(e,"Jj",{enumerable:!0,get:function(){return s.Deque}});var a=i(464);Object.defineProperty(e,"Ws",{enumerable:!0,get:function(){return a.restrictor}}),e.rE="v1.3.
|
|
5
|
+
761:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Deque=void 0;const i=e=>(e=>(e>>>=0,e--,e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,1+(e|=e>>16)))(Math.min(Math.max(16,0|e),1073741824));t.Deque=class{constructor(e){this._c=i(e||16),this._l=0,this._f=0,this.length=0,this._a=[]}push(e){const t=this._l;this._c<t+1&&r(this,i(1.5*this._c+16));const n=this._f+t&this._c-1;this._a[n]=e,this.length=this._l=t+1}shift(){const e=this._l;if(0===e)return;const t=this._f,i=this._a[t];return this._a[t]=void 0,this._f=t+1&this._c-1,this.length=this._l=e-1,i}};const r=(e,t)=>{const i=e._c;e._c=t;const r=e._f+e._l;if(r>i){const t=r&i-1;((e,t,i,r,n)=>{for(let s=0;s<n;++s)i[s+r]=e[s+t],e[s+t]=void 0})(e._a,0,e._a,i,t)}}}},t={};function i(r){var n=t[r];if(void 0!==n)return n.exports;var s=t[r]={exports:{}}
|
|
6
|
+
;return e[r](s,s.exports,i),s.exports}var r={};(()=>{var e=r;Object.defineProperty(e,"BJ",{value:!0}),e.rE=e.Ws=e.Jj=e.vt=e.C=void 0;var t=i(518);Object.defineProperty(e,"C",{enumerable:!0,get:function(){return t.MiniSemaphore}});var n=i(139);Object.defineProperty(e,"vt",{enumerable:!0,get:function(){return n.create}});var s=i(761);Object.defineProperty(e,"Jj",{enumerable:!0,get:function(){return s.Deque}});var a=i(464);Object.defineProperty(e,"Ws",{enumerable:!0,get:function(){return a.restrictor}}),e.rE="v1.3.17"})();const n=r.Jj,s=r.C,a=r.BJ,c=r.vt,o=r.Ws,l=r.rE;export{n as Deque,s as MiniSemaphore,a as __esModule,c as create,o as restrictor,l as version};
|