@fncts/io 0.0.41 → 0.0.42
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/Fiber/FiberRuntime.d.ts +2 -2
- package/Fiber/definition.d.ts +1 -0
- package/FiberSet.d.ts +66 -0
- package/Hub/definition.d.ts +3 -0
- package/Hub/internal.d.ts +1 -0
- package/IO/api/diffFiberRefs.d.ts +7 -0
- package/IO/api/timeout.d.ts +5 -0
- package/IO/api.d.ts +6 -1
- package/IO/definition.d.ts +18 -7
- package/Layer/api.d.ts +5 -0
- package/Queue/api/dimapIO.d.ts +5 -0
- package/Queue/api/filterInputIO.d.ts +1 -1
- package/Queue/api/filterOutputIO.d.ts +1 -0
- package/Queue/api/operations.d.ts +11 -0
- package/Queue/api/zipWithIO.d.ts +1 -0
- package/Queue/definition.d.ts +5 -0
- package/Queue/internal.d.ts +1 -0
- package/STM/definition.d.ts +1 -1
- package/Stream/api.d.ts +10 -0
- package/_cjs/Fiber/FiberRuntime.cjs +86 -75
- package/_cjs/Fiber/FiberRuntime.cjs.map +1 -1
- package/_cjs/Fiber/definition.cjs.map +1 -1
- package/_cjs/FiberSet.cjs +129 -0
- package/_cjs/FiberSet.cjs.map +1 -0
- package/_cjs/Hub/api.cjs +20 -11
- package/_cjs/Hub/api.cjs.map +1 -1
- package/_cjs/Hub/definition.cjs +3 -0
- package/_cjs/Hub/definition.cjs.map +1 -1
- package/_cjs/Hub/internal.cjs +65 -49
- package/_cjs/Hub/internal.cjs.map +1 -1
- package/_cjs/IO/api/diffFiberRefs.cjs +17 -0
- package/_cjs/IO/api/diffFiberRefs.cjs.map +1 -0
- package/_cjs/IO/api/memoize.cjs +7 -4
- package/_cjs/IO/api/memoize.cjs.map +1 -1
- package/_cjs/IO/api/timeout.cjs +8 -0
- package/_cjs/IO/api/timeout.cjs.map +1 -1
- package/_cjs/IO/api.cjs +10 -3
- package/_cjs/IO/api.cjs.map +1 -1
- package/_cjs/IO/definition.cjs +9 -3
- package/_cjs/IO/definition.cjs.map +1 -1
- package/_cjs/Layer/api.cjs +8 -1
- package/_cjs/Layer/api.cjs.map +1 -1
- package/_cjs/Queue/api/dimapIO.cjs +28 -10
- package/_cjs/Queue/api/dimapIO.cjs.map +1 -1
- package/_cjs/Queue/api/filterInputIO.cjs +21 -9
- package/_cjs/Queue/api/filterInputIO.cjs.map +1 -1
- package/_cjs/Queue/api/filterOutputIO.cjs +28 -16
- package/_cjs/Queue/api/filterOutputIO.cjs.map +1 -1
- package/_cjs/Queue/api/operations.cjs +20 -0
- package/_cjs/Queue/api/operations.cjs.map +1 -1
- package/_cjs/Queue/api/zipWithIO.cjs +16 -9
- package/_cjs/Queue/api/zipWithIO.cjs.map +1 -1
- package/_cjs/Queue/definition.cjs.map +1 -1
- package/_cjs/Queue/internal.cjs +84 -54
- package/_cjs/Queue/internal.cjs.map +1 -1
- package/_cjs/STM/definition.cjs +1 -1
- package/_cjs/STM/definition.cjs.map +1 -1
- package/_cjs/Stream/api.cjs +40 -5
- package/_cjs/Stream/api.cjs.map +1 -1
- package/_cjs/internal/BackgroundScheduler.cjs +0 -1
- package/_cjs/internal/BackgroundScheduler.cjs.map +1 -1
- package/_mjs/Fiber/FiberRuntime.mjs +86 -75
- package/_mjs/Fiber/FiberRuntime.mjs.map +1 -1
- package/_mjs/Fiber/definition.mjs.map +1 -1
- package/_mjs/FiberSet.mjs +113 -0
- package/_mjs/FiberSet.mjs.map +1 -0
- package/_mjs/Hub/api.mjs +20 -11
- package/_mjs/Hub/api.mjs.map +1 -1
- package/_mjs/Hub/definition.mjs +3 -0
- package/_mjs/Hub/definition.mjs.map +1 -1
- package/_mjs/Hub/internal.mjs +65 -49
- package/_mjs/Hub/internal.mjs.map +1 -1
- package/_mjs/IO/api/diffFiberRefs.mjs +9 -0
- package/_mjs/IO/api/diffFiberRefs.mjs.map +1 -0
- package/_mjs/IO/api/memoize.mjs +7 -4
- package/_mjs/IO/api/memoize.mjs.map +1 -1
- package/_mjs/IO/api/timeout.mjs +7 -0
- package/_mjs/IO/api/timeout.mjs.map +1 -1
- package/_mjs/IO/api.mjs +9 -3
- package/_mjs/IO/api.mjs.map +1 -1
- package/_mjs/IO/definition.mjs +7 -2
- package/_mjs/IO/definition.mjs.map +1 -1
- package/_mjs/Layer/api.mjs +7 -1
- package/_mjs/Layer/api.mjs.map +1 -1
- package/_mjs/Queue/api/dimapIO.mjs +28 -10
- package/_mjs/Queue/api/dimapIO.mjs.map +1 -1
- package/_mjs/Queue/api/filterInputIO.mjs +21 -9
- package/_mjs/Queue/api/filterInputIO.mjs.map +1 -1
- package/_mjs/Queue/api/filterOutputIO.mjs +28 -16
- package/_mjs/Queue/api/filterOutputIO.mjs.map +1 -1
- package/_mjs/Queue/api/operations.mjs +18 -0
- package/_mjs/Queue/api/operations.mjs.map +1 -1
- package/_mjs/Queue/api/zipWithIO.mjs +16 -9
- package/_mjs/Queue/api/zipWithIO.mjs.map +1 -1
- package/_mjs/Queue/definition.mjs.map +1 -1
- package/_mjs/Queue/internal.mjs +84 -54
- package/_mjs/Queue/internal.mjs.map +1 -1
- package/_mjs/STM/definition.mjs +1 -1
- package/_mjs/STM/definition.mjs.map +1 -1
- package/_mjs/Stream/api.mjs +36 -4
- package/_mjs/Stream/api.mjs.map +1 -1
- package/_mjs/internal/BackgroundScheduler.mjs +0 -1
- package/_mjs/internal/BackgroundScheduler.mjs.map +1 -1
- package/_src/Fiber/FiberRuntime.ts +50 -36
- package/_src/Fiber/definition.ts +2 -0
- package/_src/FiberSet.ts +115 -0
- package/_src/Hub/api.ts +15 -6
- package/_src/Hub/definition.ts +6 -0
- package/_src/Hub/internal.ts +19 -0
- package/_src/IO/api/diffFiberRefs.ts +11 -0
- package/_src/IO/api/memoize.ts +5 -3
- package/_src/IO/api/timeout.ts +8 -0
- package/_src/IO/api.ts +7 -0
- package/_src/IO/definition.ts +20 -4
- package/_src/Layer/api.ts +10 -0
- package/_src/Queue/api/dimapIO.ts +25 -0
- package/_src/Queue/api/filterInputIO.ts +16 -0
- package/_src/Queue/api/filterOutputIO.ts +16 -0
- package/_src/Queue/api/operations.ts +20 -0
- package/_src/Queue/api/zipWithIO.ts +8 -0
- package/_src/Queue/definition.ts +4 -0
- package/_src/Queue/internal.ts +32 -0
- package/_src/STM/definition.ts +1 -1
- package/_src/Stream/api.ts +55 -0
- package/_src/global.ts +4 -0
- package/_src/internal/BackgroundScheduler.ts +0 -1
- package/global.d.ts +4 -0
- package/package.json +4 -4
@@ -18,21 +18,27 @@ class FilterInputIO extends QueueInternal {
|
|
18
18
|
this.take = this.queue.take;
|
19
19
|
this.takeAll = this.queue.takeAll;
|
20
20
|
}
|
21
|
+
get unsafeSize() {
|
22
|
+
return this.queue.unsafeSize;
|
23
|
+
}
|
24
|
+
unsafeOffer(a) {
|
25
|
+
throw new Error("Cannot unsafely offer to an effectful Queue");
|
26
|
+
}
|
21
27
|
offer(a) {
|
22
|
-
return tsplus_module_1.flatMap(b => b ? this.queue.offer(a, fileName_1 + ":
|
28
|
+
return tsplus_module_1.flatMap(b => b ? this.queue.offer(a, fileName_1 + ":28:58") : tsplus_module_1.succeedNow(false, fileName_1 + ":28:77"), fileName_1 + ":28:29")(this.f(a));
|
23
29
|
}
|
24
30
|
offerAll(as) {
|
25
31
|
return tsplus_module_1.flatMap(ms => {
|
26
32
|
const filtered = tsplus_module_2.compact(ms);
|
27
33
|
if (tsplus_module_2.isEmpty(filtered)) {
|
28
|
-
return tsplus_module_1.succeedNow(false, fileName_1 + ":
|
34
|
+
return tsplus_module_1.succeedNow(false, fileName_1 + ":35:29");
|
29
35
|
} else {
|
30
|
-
return this.queue.offerAll(filtered, fileName_1 + ":
|
36
|
+
return this.queue.offerAll(filtered, fileName_1 + ":37:35");
|
31
37
|
}
|
32
|
-
}, fileName_1 + ":
|
38
|
+
}, fileName_1 + ":32:90")(tsplus_module_1.foreach(as, a => tsplus_module_1.map(b => b ? tsplus_module_3.just(a, fileName_1 + ":32:64") : tsplus_module_3.nothing(fileName_1 + ":32:77"), fileName_1 + ":32:47")(this.f(a)), fileName_1 + ":32:22"));
|
33
39
|
}
|
34
40
|
takeUpTo(max) {
|
35
|
-
return this.queue.takeUpTo(max, fileName_1 + ":
|
41
|
+
return this.queue.takeUpTo(max, fileName_1 + ":51:31");
|
36
42
|
}
|
37
43
|
}
|
38
44
|
/**
|
@@ -69,18 +75,24 @@ class FilterInputEnqueueIO {
|
|
69
75
|
this.shutdown = this.queue.shutdown;
|
70
76
|
this.size = this.queue.size;
|
71
77
|
}
|
78
|
+
get unsafeSize() {
|
79
|
+
return this.queue.unsafeSize;
|
80
|
+
}
|
81
|
+
unsafeOffer(a) {
|
82
|
+
throw new Error("Cannot unsafely offer to an effectful Queue");
|
83
|
+
}
|
72
84
|
offer(a) {
|
73
|
-
return tsplus_module_1.flatMap(b => b ? this.queue.offer(a, fileName_1 + ":
|
85
|
+
return tsplus_module_1.flatMap(b => b ? this.queue.offer(a, fileName_1 + ":112:58") : tsplus_module_1.succeedNow(false, fileName_1 + ":112:77"), fileName_1 + ":112:29")(this.f(a));
|
74
86
|
}
|
75
87
|
offerAll(as) {
|
76
88
|
return tsplus_module_1.flatMap(ms => {
|
77
89
|
const filtered = tsplus_module_2.compact(ms);
|
78
90
|
if (tsplus_module_2.isEmpty(filtered)) {
|
79
|
-
return tsplus_module_1.succeedNow(false, fileName_1 + ":
|
91
|
+
return tsplus_module_1.succeedNow(false, fileName_1 + ":119:29");
|
80
92
|
} else {
|
81
|
-
return this.queue.offerAll(filtered, fileName_1 + ":
|
93
|
+
return this.queue.offerAll(filtered, fileName_1 + ":121:35");
|
82
94
|
}
|
83
|
-
}, fileName_1 + ":
|
95
|
+
}, fileName_1 + ":116:90")(tsplus_module_1.foreach(as, a => tsplus_module_1.map(b => b ? tsplus_module_3.just(a, fileName_1 + ":116:64") : tsplus_module_3.nothing(fileName_1 + ":116:77"), fileName_1 + ":116:47")(this.f(a)), fileName_1 + ":116:22"));
|
84
96
|
}
|
85
97
|
}
|
86
98
|
_a = EnqueueTypeId, _b = QueueTypeId;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"filterInputIO.mjs","names":["filterInputIO","filterInputIO_1","concrete","EnqueueTypeId","QueueInternal","QueueTypeId","QueueVariance","FilterInputIO","constructor","queue","f","awaitShutdown","capacity","isShutdown","shutdown","size","take","takeAll","
|
1
|
+
{"version":3,"file":"filterInputIO.mjs","names":["filterInputIO","filterInputIO_1","concrete","EnqueueTypeId","QueueInternal","QueueTypeId","QueueVariance","FilterInputIO","constructor","queue","f","awaitShutdown","capacity","isShutdown","shutdown","size","take","takeAll","unsafeSize","unsafeOffer","a","Error","offer","tsplus_module_1","flatMap","b","fileName_1","succeedNow","offerAll","as","ms","filtered","tsplus_module_2","compact","isEmpty","foreach","map","tsplus_module_3","just","nothing","takeUpTo","max","__tsplusTrace","filterInput","FilterInputEnqueueIO","_a","_b","filterInputEnqueueIO"],"sources":["../../../_src/Queue/api/filterInputIO.ts"],"sourcesContent":[null],"mappings":"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"}
|
@@ -15,32 +15,38 @@ class FilterOutputIO extends QueueInternal {
|
|
15
15
|
this.isShutdown = this.queue.isShutdown;
|
16
16
|
this.shutdown = this.queue.shutdown;
|
17
17
|
this.size = this.queue.size;
|
18
|
-
this.take = tsplus_module_1.flatMap(b => tsplus_module_1.flatMap(p => p ? tsplus_module_1.succeedNow(b, fileName_1 + ":
|
19
|
-
this.takeAll = tsplus_module_1.flatMap(bs => tsplus_module_1.filter(bs, this.f, fileName_1 + ":
|
18
|
+
this.take = tsplus_module_1.flatMap(b => tsplus_module_1.flatMap(p => p ? tsplus_module_1.succeedNow(b, fileName_1 + ":40:48") : this.take, fileName_1 + ":40:22")(this.f(b)), fileName_1 + ":39:60")(this.queue.take);
|
19
|
+
this.takeAll = tsplus_module_1.flatMap(bs => tsplus_module_1.filter(bs, this.f, fileName_1 + ":43:90"), fileName_1 + ":43:72")(this.queue.takeAll);
|
20
|
+
}
|
21
|
+
get unsafeSize() {
|
22
|
+
return this.queue.unsafeSize;
|
23
|
+
}
|
24
|
+
unsafeOffer(a) {
|
25
|
+
throw new Error("Cannot unsafely offer to an effectful Queue");
|
20
26
|
}
|
21
27
|
offer(a) {
|
22
|
-
return this.queue.offer(a, fileName_1 + ":
|
28
|
+
return this.queue.offer(a, fileName_1 + ":28:28");
|
23
29
|
}
|
24
30
|
offerAll(as) {
|
25
|
-
return this.queue.offerAll(as, fileName_1 + ":
|
31
|
+
return this.queue.offerAll(as, fileName_1 + ":32:31");
|
26
32
|
}
|
27
33
|
loop(max, acc) {
|
28
34
|
return tsplus_module_1.flatMap(bs => {
|
29
35
|
if (tsplus_module_2.isEmpty(bs)) {
|
30
|
-
return tsplus_module_1.succeedNow(acc, fileName_1 + ":
|
36
|
+
return tsplus_module_1.succeedNow(acc, fileName_1 + ":48:29");
|
31
37
|
}
|
32
38
|
return tsplus_module_1.flatMap(filtered => {
|
33
39
|
const length = filtered.length;
|
34
40
|
if (length === max) {
|
35
|
-
return tsplus_module_1.succeedNow(tsplus_module_2.concat(filtered)(acc), fileName_1 + ":
|
41
|
+
return tsplus_module_1.succeedNow(tsplus_module_2.concat(filtered)(acc), fileName_1 + ":55:31");
|
36
42
|
} else {
|
37
43
|
return this.loop(max - length, tsplus_module_2.concat(filtered)(acc));
|
38
44
|
}
|
39
|
-
}, fileName_1 + ":
|
40
|
-
}, fileName_1 + ":
|
45
|
+
}, fileName_1 + ":51:43")(tsplus_module_1.filter(bs, this.f, fileName_1 + ":51:23"));
|
46
|
+
}, fileName_1 + ":46:44")(this.queue.takeUpTo(max, fileName_1 + ":46:31"));
|
41
47
|
}
|
42
48
|
takeUpTo(n) {
|
43
|
-
return tsplus_module_1.defer(() => this.loop(n, tsplus_module_3.empty()), fileName_1 + ":
|
49
|
+
return tsplus_module_1.defer(() => this.loop(n, tsplus_module_3.empty()), fileName_1 + ":64:20");
|
44
50
|
}
|
45
51
|
}
|
46
52
|
/**
|
@@ -71,26 +77,32 @@ class FilterOutputDequeueIO {
|
|
71
77
|
this.isShutdown = this.queue.isShutdown;
|
72
78
|
this.shutdown = this.queue.shutdown;
|
73
79
|
this.size = this.queue.size;
|
74
|
-
this.take = tsplus_module_1.flatMap(b => tsplus_module_1.flatMap(p => p ? tsplus_module_1.succeedNow(b, fileName_1 + ":
|
75
|
-
this.takeAll = tsplus_module_1.flatMap(bs => tsplus_module_1.filter(bs, this.f, fileName_1 + ":
|
80
|
+
this.take = tsplus_module_1.flatMap(b => tsplus_module_1.flatMap(p => p ? tsplus_module_1.succeedNow(b, fileName_1 + ":124:48") : this.take, fileName_1 + ":124:22")(this.f(b)), fileName_1 + ":123:60")(this.queue.take);
|
81
|
+
this.takeAll = tsplus_module_1.flatMap(bs => tsplus_module_1.filter(bs, this.f, fileName_1 + ":127:90"), fileName_1 + ":127:72")(this.queue.takeAll);
|
82
|
+
}
|
83
|
+
get unsafeSize() {
|
84
|
+
return this.queue.unsafeSize;
|
85
|
+
}
|
86
|
+
unsafeOffer(a) {
|
87
|
+
throw new Error("Cannot unsafely offer to an effectful Queue");
|
76
88
|
}
|
77
89
|
loop(max, acc) {
|
78
90
|
return tsplus_module_1.flatMap(bs => {
|
79
91
|
if (tsplus_module_2.isEmpty(bs)) {
|
80
|
-
return tsplus_module_1.succeedNow(acc, fileName_1 + ":
|
92
|
+
return tsplus_module_1.succeedNow(acc, fileName_1 + ":132:29");
|
81
93
|
}
|
82
94
|
return tsplus_module_1.flatMap(filtered => {
|
83
95
|
const length = filtered.length;
|
84
96
|
if (length === max) {
|
85
|
-
return tsplus_module_1.succeedNow(tsplus_module_2.concat(filtered)(acc), fileName_1 + ":
|
97
|
+
return tsplus_module_1.succeedNow(tsplus_module_2.concat(filtered)(acc), fileName_1 + ":139:31");
|
86
98
|
} else {
|
87
99
|
return this.loop(max - length, tsplus_module_2.concat(filtered)(acc));
|
88
100
|
}
|
89
|
-
}, fileName_1 + ":
|
90
|
-
}, fileName_1 + ":
|
101
|
+
}, fileName_1 + ":135:43")(tsplus_module_1.filter(bs, this.f, fileName_1 + ":135:23"));
|
102
|
+
}, fileName_1 + ":130:44")(this.queue.takeUpTo(max, fileName_1 + ":130:31"));
|
91
103
|
}
|
92
104
|
takeUpTo(n) {
|
93
|
-
return tsplus_module_1.defer(() => this.loop(n, tsplus_module_3.empty()), fileName_1 + ":
|
105
|
+
return tsplus_module_1.defer(() => this.loop(n, tsplus_module_3.empty()), fileName_1 + ":148:20");
|
94
106
|
}
|
95
107
|
}
|
96
108
|
_a = QueueTypeId, _b = DequeueTypeId;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"filterOutputIO.mjs","names":["filterOutputIO","filterOutputIO_1","concrete","DequeueTypeId","QueueInternal","QueueTypeId","QueueVariance","FilterOutputIO","constructor","queue","f","awaitShutdown","capacity","isShutdown","shutdown","size","take","tsplus_module_1","flatMap","b","p","succeedNow","fileName_1","takeAll","bs","filter","
|
1
|
+
{"version":3,"file":"filterOutputIO.mjs","names":["filterOutputIO","filterOutputIO_1","concrete","DequeueTypeId","QueueInternal","QueueTypeId","QueueVariance","FilterOutputIO","constructor","queue","f","awaitShutdown","capacity","isShutdown","shutdown","size","take","tsplus_module_1","flatMap","b","p","succeedNow","fileName_1","takeAll","bs","filter","unsafeSize","unsafeOffer","a","Error","offer","offerAll","as","loop","max","acc","tsplus_module_2","isEmpty","filtered","length","concat","takeUpTo","n","defer","tsplus_module_3","empty","__tsplusTrace","filterOutput","FilterOutputDequeueIO","_a","_b","filterOutputDequeueIO"],"sources":["../../../_src/Queue/api/filterOutputIO.ts"],"sourcesContent":[null],"mappings":"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"}
|
@@ -28,6 +28,17 @@ export function isShutdown(queue, __tsplusTrace) {
|
|
28
28
|
concrete(queue);
|
29
29
|
return queue.isShutdown;
|
30
30
|
}
|
31
|
+
/**
|
32
|
+
* Places one value in the queue.
|
33
|
+
*
|
34
|
+
* @tsplus pipeable fncts.io.Queue unsafeOffer
|
35
|
+
*/
|
36
|
+
export function unsafeOffer(a, __tsplusTrace) {
|
37
|
+
return queue => {
|
38
|
+
concrete(queue);
|
39
|
+
return queue.unsafeOffer(a);
|
40
|
+
};
|
41
|
+
}
|
31
42
|
/**
|
32
43
|
* Places one value in the queue.
|
33
44
|
*
|
@@ -84,6 +95,13 @@ export function size(queue, __tsplusTrace) {
|
|
84
95
|
concrete(queue);
|
85
96
|
return queue.size;
|
86
97
|
}
|
98
|
+
/**
|
99
|
+
* @tsplus getter fncts.io.Queue unsafeSize
|
100
|
+
*/
|
101
|
+
export function unsafeSize(queue, __tsplusTrace) {
|
102
|
+
concrete(queue);
|
103
|
+
return queue.unsafeSize;
|
104
|
+
}
|
87
105
|
/**
|
88
106
|
* Removes the oldest value in the queue. If the queue is empty, this will
|
89
107
|
* return a computation that resumes when an item has been added to the queue.
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"operations.mjs","names":["concrete","awaitShutdown","queue","__tsplusTrace","capacity","isShutdown","
|
1
|
+
{"version":3,"file":"operations.mjs","names":["concrete","awaitShutdown","queue","__tsplusTrace","capacity","isShutdown","unsafeOffer","a","offer","offerAll","as","shutdown","size","unsafeSize","take","takeAll","takeUpTo","n"],"sources":["../../../_src/Queue/api/operations.ts"],"sourcesContent":[null],"mappings":"AAEA,SAASA,QAAQ,QAAQ,4BAA4B;AAErD;;;;;;;AAOA,OAAM,SAAUC,aAAaA,CAC3BC,KAAyC,EACzCC,aAAsB;EAEtBH,QAAQ,CAACE,KAAK,CAAC;EACf,OAAOA,KAAK,CAACD,aAAa;AAC5B;AAEA;;;;;AAKA,OAAM,SAAUG,QAAQA,CACtBF,KAAyC,EACzCC,aAAsB;EAEtBH,QAAQ,CAACE,KAAK,CAAC;EACf,OAAOA,KAAK,CAACE,QAAQ;AACvB;AAEA;;;;;AAKA,OAAM,SAAUC,UAAUA,CACxBH,KAAyC,EACzCC,aAAsB;EAEtBH,QAAQ,CAACE,KAAK,CAAC;EACf,OAAOA,KAAK,CAACG,UAAU;AACzB;AAEA;;;;;AAKA,OAAM,SAAUC,WAAWA,CAAIC,CAAI,EAAEJ,aAAsB;EACzD,OAA2BD,KAAqC,IAAa;IAC3EF,QAAQ,CAACE,KAAK,CAAC;IACf,OAAOA,KAAK,CAACI,WAAW,CAACC,CAAC,CAAC;EAC7B,CAAC;AACH;AAEA;;;;;AAKA,OAAM,SAAUC,KAAKA,CAAID,CAAI,EAAEJ,aAAsB;EACnD,OAA2BD,KAAqC,IAAyB;IACvFF,QAAQ,CAACE,KAAK,CAAC;IACf,OAAOA,KAAK,CAACM,KAAK,CAACD,CAAC,EAHOJ,aAAA,CAGN;EACvB,CAAC;AACH;AAEA;;;;;;;;;;;;;;;;;;AAkBA,OAAM,SAAUM,QAAQA,CAAIC,EAAe,EAAEP,aAAsB;EACjE,OAA2BD,KAAqC,IAAI;IAClEF,QAAQ,CAACE,KAAK,CAAC;IACf,OAAOA,KAAK,CAACO,QAAQ,CAACC,EAAE,EAHiBP,aAAA,CAGhB;EAC3B,CAAC;AACH;AAEA;;;;;;AAMA,OAAM,SAAUQ,QAAQA,CAAuBT,KAAyC,EAAEC,aAAsB;EAC9GH,QAAQ,CAACE,KAAK,CAAC;EACf,OAAOA,KAAK,CAACS,QAAQ;AACvB;AAEA;;;;;;;AAOA,OAAM,SAAUC,IAAIA,CAAuBV,KAAyC,EAAEC,aAAsB;EAC1GH,QAAQ,CAACE,KAAK,CAAC;EACf,OAAOA,KAAK,CAACU,IAAI;AACnB;AAEA;;;AAGA,OAAM,SAAUC,UAAUA,CAAuBX,KAAyC,EAAEC,aAAsB;EAChHH,QAAQ,CAACE,KAAK,CAAC;EACf,OAAOA,KAAK,CAACW,UAAU;AACzB;AAEA;;;;;;AAMA,OAAM,SAAUC,IAAIA,CAClBZ,KAAqC,EACrCC,aAAsB;EAEtBH,QAAQ,CAACE,KAAK,CAAC;EACf,OAAOA,KAAK,CAACY,IAAI;AACnB;AAEA;;;;;;AAMA,OAAM,SAAUC,OAAOA,CAAuBb,KAAqC,EAAEC,aAAsB;EACzGH,QAAQ,CAACE,KAAK,CAAC;EACf,OAAOA,KAAK,CAACa,OAAO;AACtB;AAEA;;;;;AAKA,OAAM,SAAUC,QAAQA,CAACC,CAAS,EAAEd,aAAsB;EACxD,OAA8BD,KAAmC,IAAI;IACnEF,QAAQ,CAACE,KAAK,CAAC;IACf,OAAOA,KAAK,CAACc,QAAQ,CAACC,CAAC,EAHSd,aAAA,CAGR;EAC1B,CAAC;AACH"}
|
@@ -1,7 +1,8 @@
|
|
1
1
|
const fileName_1 = "(@fncts/io) src/Queue/api/zipWithIO.ts";
|
2
2
|
import * as tsplus_module_1 from "@fncts/io/IO/api";
|
3
|
-
import * as tsplus_module_2 from "@fncts/
|
4
|
-
import * as tsplus_module_3 from "@fncts/
|
3
|
+
import * as tsplus_module_2 from "@fncts/base/data/Maybe/api";
|
4
|
+
import * as tsplus_module_3 from "@fncts/io/IO/api/zipConcurrent";
|
5
|
+
import * as tsplus_module_4 from "@fncts/base/collection/immutable/Conc/api";
|
5
6
|
export const zipWithIO = zipWithIO_1;
|
6
7
|
export const zipWith = zipWith_1;
|
7
8
|
import { tuple } from "@fncts/base/data/function";
|
@@ -15,19 +16,25 @@ class ZipWithIO extends QueueInternal {
|
|
15
16
|
this.awaitShutdown = tsplus_module_1.flatMap(() => this.fb.awaitShutdown, fileName_1 + ":20:59")(this.fa.awaitShutdown);
|
16
17
|
this.capacity = Math.min(this.fa.capacity, this.fb.capacity);
|
17
18
|
this.isShutdown = this.fa.isShutdown;
|
18
|
-
this.shutdown =
|
19
|
-
this.size =
|
20
|
-
this.take = tsplus_module_1.flatMap(([b, c]) => this.f(b, c), fileName_1 + ":
|
21
|
-
this.takeAll = tsplus_module_1.flatMap(([bs, cs]) => tsplus_module_1.foreach(
|
19
|
+
this.shutdown = tsplus_module_3.zipWithConcurrent(this.fb.shutdown, () => undefined, fileName_1 + ":42:59")(this.fa.shutdown);
|
20
|
+
this.size = tsplus_module_3.zipWithConcurrent(this.fb.size, (x, y) => Math.max(x, y), fileName_1 + ":44:53")(this.fa.size);
|
21
|
+
this.take = tsplus_module_1.flatMap(([b, c]) => this.f(b, c), fileName_1 + ":48:13")(tsplus_module_3.zipConcurrent(this.fb.take, fileName_1 + ":47:19")(this.fa.take));
|
22
|
+
this.takeAll = tsplus_module_1.flatMap(([bs, cs]) => tsplus_module_1.foreach(tsplus_module_4.zip(cs)(bs), ([b, c]) => this.f(b, c), fileName_1 + ":52:38"), fileName_1 + ":52:13")(tsplus_module_3.zipConcurrent(this.fb.takeAll, fileName_1 + ":51:19")(this.fa.takeAll));
|
23
|
+
}
|
24
|
+
get unsafeSize() {
|
25
|
+
return tsplus_module_2.zipWith(this.fb.unsafeSize, (a, b) => Math.max(a, b))(this.fa.unsafeSize);
|
26
|
+
}
|
27
|
+
unsafeOffer(a) {
|
28
|
+
throw new Error("Cannot unsafely offer to an effectful Queue");
|
22
29
|
}
|
23
30
|
offer(a) {
|
24
|
-
return
|
31
|
+
return tsplus_module_3.zipWithConcurrent(this.fb.offer(a, fileName_1 + ":35:60"), (x, y) => x && y, fileName_1 + ":35:46")(this.fa.offer(a, fileName_1 + ":35:25"));
|
25
32
|
}
|
26
33
|
offerAll(as) {
|
27
|
-
return
|
34
|
+
return tsplus_module_3.zipWithConcurrent(this.fb.offerAll(as, fileName_1 + ":39:67"), (x, y) => x && y, fileName_1 + ":39:50")(this.fa.offerAll(as, fileName_1 + ":39:28"));
|
28
35
|
}
|
29
36
|
takeUpTo(max) {
|
30
|
-
return tsplus_module_1.flatMap(([bs, cs]) => tsplus_module_1.foreach(
|
37
|
+
return tsplus_module_1.flatMap(([bs, cs]) => tsplus_module_1.foreach(tsplus_module_4.zip(cs)(bs), ([b, c]) => this.f(b, c), fileName_1 + ":58:40"), fileName_1 + ":58:15")(tsplus_module_3.zipConcurrent(this.fb.takeUpTo(max, fileName_1 + ":57:38"), fileName_1 + ":57:21")(this.fa.takeUpTo(max, fileName_1 + ":56:16")));
|
31
38
|
}
|
32
39
|
}
|
33
40
|
/**
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"zipWithIO.mjs","names":["zipWithIO","zipWithIO_1","zipWith","zipWith_1","tuple","concrete","QueueInternal","ZipWithIO","constructor","fa","fb","f","awaitShutdown","tsplus_module_1","flatMap","fileName_1","capacity","Math","min","isShutdown","shutdown","
|
1
|
+
{"version":3,"file":"zipWithIO.mjs","names":["zipWithIO","zipWithIO_1","zipWith","zipWith_1","tuple","concrete","QueueInternal","ZipWithIO","constructor","fa","fb","f","awaitShutdown","tsplus_module_1","flatMap","fileName_1","capacity","Math","min","isShutdown","shutdown","tsplus_module_3","zipWithConcurrent","undefined","size","x","y","max","take","b","c","zipConcurrent","takeAll","bs","cs","foreach","tsplus_module_4","zip","unsafeSize","tsplus_module_2","a","unsafeOffer","Error","offer","offerAll","as","takeUpTo","__tsplusTrace","that","queue","succeedNow"],"sources":["../../../_src/Queue/api/zipWithIO.ts"],"sourcesContent":[null],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"definition.mjs","names":["EnqueueTypeId","Symbol","for","DequeueTypeId","QueueVariance","QueueTypeId","Queue","concrete","_","QueueInternal","constructor","_a","_b","_c"],"sources":["../../_src/Queue/definition.ts"],"sourcesContent":[null],"mappings":";AAAA,OAAO,MAAMA,aAAa,gBAAGC,MAAM,CAACC,GAAG,CAAC,wBAAwB,CAAC;AAGjE,OAAO,MAAMC,aAAa,gBAAGF,MAAM,CAACC,GAAG,CAAC,wBAAwB,CAAC;AAGjE,OAAO,MAAME,aAAa,gBAAGH,MAAM,CAACC,GAAG,CAAC,yBAAyB,CAAC;AAGlE,OAAO,MAAMG,WAAW,gBAAGJ,MAAM,CAACC,GAAG,CAAC,gBAAgB,CAAC;AAkDvD,OAAO,MAAMI,KAAK,GAAa,EAAE;AAiBjC,OAAM,SAAUC,QAAQA,CAACC,CAAM;EAC7B;AAAA;AAGF;;;;;;;AAOA,OAAM,MAAgBC,aAAa;EAAnCC,YAAA;IAGW,KAAAC,EAAA,CAAa,GAAoBN,WAAW;IAC5C,KAAAO,EAAA,CAAe,GAAkBT,aAAa;IAC9C,KAAAU,EAAA,CAAe,GAAkBb,aAAa;
|
1
|
+
{"version":3,"file":"definition.mjs","names":["EnqueueTypeId","Symbol","for","DequeueTypeId","QueueVariance","QueueTypeId","Queue","concrete","_","QueueInternal","constructor","_a","_b","_c"],"sources":["../../_src/Queue/definition.ts"],"sourcesContent":[null],"mappings":";AAAA,OAAO,MAAMA,aAAa,gBAAGC,MAAM,CAACC,GAAG,CAAC,wBAAwB,CAAC;AAGjE,OAAO,MAAMC,aAAa,gBAAGF,MAAM,CAACC,GAAG,CAAC,wBAAwB,CAAC;AAGjE,OAAO,MAAME,aAAa,gBAAGH,MAAM,CAACC,GAAG,CAAC,yBAAyB,CAAC;AAGlE,OAAO,MAAMG,WAAW,gBAAGJ,MAAM,CAACC,GAAG,CAAC,gBAAgB,CAAC;AAkDvD,OAAO,MAAMI,KAAK,GAAa,EAAE;AAiBjC,OAAM,SAAUC,QAAQA,CAACC,CAAM;EAC7B;AAAA;AAGF;;;;;;;AAOA,OAAM,MAAgBC,aAAa;EAAnCC,YAAA;IAGW,KAAAC,EAAA,CAAa,GAAoBN,WAAW;IAC5C,KAAAO,EAAA,CAAe,GAAkBT,aAAa;IAC9C,KAAAU,EAAA,CAAe,GAAkBb,aAAa;EAwEzD;;KA1EYK,WAAW,EAAAO,EAAA,GACXT,aAAa,EAAAU,EAAA,GACbb,aAAa"}
|
package/_mjs/Queue/internal.mjs
CHANGED
@@ -1,12 +1,13 @@
|
|
1
1
|
const fileName_1 = "(@fncts/io) src/Queue/internal.ts";
|
2
2
|
import * as tsplus_module_1 from "@fncts/io/Future/api";
|
3
3
|
import * as tsplus_module_2 from "@fncts/io/IO/api";
|
4
|
-
import * as tsplus_module_3 from "@fncts/
|
5
|
-
import * as tsplus_module_4 from "@fncts/
|
6
|
-
import * as tsplus_module_5 from "@fncts/base/collection/immutable/Conc/
|
7
|
-
import * as tsplus_module_6 from "@fncts/base/collection/immutable/Conc/api";
|
8
|
-
import * as tsplus_module_7 from "@fncts/
|
9
|
-
import * as tsplus_module_8 from "@fncts/io/
|
4
|
+
import * as tsplus_module_3 from "@fncts/base/data/Maybe/constructors";
|
5
|
+
import * as tsplus_module_4 from "@fncts/io/IO/api/interrupt";
|
6
|
+
import * as tsplus_module_5 from "@fncts/base/collection/immutable/Conc/constructors";
|
7
|
+
import * as tsplus_module_6 from "@fncts/base/collection/immutable/Conc/api/empty";
|
8
|
+
import * as tsplus_module_7 from "@fncts/base/collection/immutable/Conc/api";
|
9
|
+
import * as tsplus_module_8 from "@fncts/io/IO/api/foreachConcurrent";
|
10
|
+
import * as tsplus_module_9 from "@fncts/io/Future/constructors";
|
10
11
|
import { AtomicBoolean } from "@fncts/base/internal/AtomicBoolean";
|
11
12
|
import { unbounded } from "@fncts/io/internal/MutableQueue";
|
12
13
|
import { QueueInternal } from "@fncts/io/Queue/definition";
|
@@ -23,143 +24,172 @@ class UnsafeQueue extends QueueInternal {
|
|
23
24
|
this.isShutdown = tsplus_module_2.succeed(() => this.shutdownFlag.get, fileName_1 + ":23:40");
|
24
25
|
this.shutdown = tsplus_module_2.flatMap(id => {
|
25
26
|
this.shutdownFlag.set(true);
|
26
|
-
return tsplus_module_2.whenIO(tsplus_module_1.succeed_(undefined, fileName_1 + ":
|
27
|
-
}, fileName_1 + ":
|
27
|
+
return tsplus_module_2.whenIO(tsplus_module_1.succeed_(undefined, fileName_1 + ":114:40")(this.shutdownHook), fileName_1 + ":114:14")(tsplus_module_2.flatMap(() => this.strategy.shutdown, fileName_1 + ":113:15")(tsplus_module_8.foreachConcurrent(unsafePollAll(this.takers), fiber => tsplus_module_1.interruptAs(id, fileName_1 + ":112:89")(fiber), fileName_1 + ":112:32")));
|
28
|
+
}, fileName_1 + ":109:43")(tsplus_module_2.fiberId);
|
28
29
|
this.size = tsplus_module_2.defer(() => {
|
29
30
|
if (this.shutdownFlag.get) {
|
30
|
-
return
|
31
|
+
return tsplus_module_4.interrupt;
|
31
32
|
} else {
|
32
|
-
return tsplus_module_2.succeedNow(this.queue.size - this.takers.size + this.strategy.surplusSize, fileName_1 + ":
|
33
|
+
return tsplus_module_2.succeedNow(this.queue.size - this.takers.size + this.strategy.surplusSize, fileName_1 + ":121:27");
|
33
34
|
}
|
34
|
-
}, fileName_1 + ":
|
35
|
+
}, fileName_1 + ":117:31");
|
35
36
|
this.take = tsplus_module_2.flatMap(fiberId => tsplus_module_2.defer(() => {
|
36
37
|
if (this.shutdownFlag.get) {
|
37
|
-
return
|
38
|
+
return tsplus_module_4.interrupt;
|
38
39
|
}
|
39
40
|
const item = this.queue.dequeue(undefined);
|
40
41
|
if (item != null) {
|
41
|
-
this.strategy.unsafeOnQueueEmptySpace(this.queue, this.takers, fileName_1 + ":
|
42
|
-
return tsplus_module_2.succeedNow(item, fileName_1 + ":
|
42
|
+
this.strategy.unsafeOnQueueEmptySpace(this.queue, this.takers, fileName_1 + ":134:46");
|
43
|
+
return tsplus_module_2.succeedNow(item, fileName_1 + ":135:29");
|
43
44
|
} else {
|
44
|
-
const p =
|
45
|
-
return
|
45
|
+
const p = tsplus_module_9.unsafeMake(fiberId);
|
46
|
+
return tsplus_module_4.onInterrupt(() => tsplus_module_2.succeed(() => unsafeRemove(this.takers, p), fileName_1 + ":147:40"), fileName_1 + ":147:23")(tsplus_module_2.defer(() => {
|
46
47
|
this.takers.enqueue(p);
|
47
48
|
unsafeCompleteTakers(this.strategy, this.queue, this.takers);
|
48
49
|
if (this.shutdownFlag.get) {
|
49
|
-
return
|
50
|
+
return tsplus_module_4.interrupt;
|
50
51
|
} else {
|
51
|
-
return tsplus_module_1.wait(p, fileName_1 + ":
|
52
|
+
return tsplus_module_1.wait(p, fileName_1 + ":145:21");
|
52
53
|
}
|
53
|
-
}, fileName_1 + ":
|
54
|
+
}, fileName_1 + ":139:24"));
|
54
55
|
}
|
55
|
-
}, fileName_1 + ":
|
56
|
+
}, fileName_1 + ":126:13"), fileName_1 + ":125:49")(tsplus_module_2.fiberId);
|
56
57
|
this.takeAll = tsplus_module_2.defer(() => {
|
57
58
|
if (this.shutdownFlag.get) {
|
58
|
-
return
|
59
|
+
return tsplus_module_4.interrupt;
|
59
60
|
} else {
|
60
61
|
return tsplus_module_2.succeed(() => {
|
61
62
|
const as = unsafePollAll(this.queue);
|
62
|
-
this.strategy.unsafeOnQueueEmptySpace(this.queue, this.takers, fileName_1 + ":
|
63
|
+
this.strategy.unsafeOnQueueEmptySpace(this.queue, this.takers, fileName_1 + ":158:46");
|
63
64
|
return as;
|
64
|
-
}, fileName_1 + ":
|
65
|
+
}, fileName_1 + ":156:24");
|
65
66
|
}
|
66
|
-
}, fileName_1 + ":
|
67
|
+
}, fileName_1 + ":152:48");
|
68
|
+
}
|
69
|
+
get unsafeSize() {
|
70
|
+
if (this.shutdownFlag.get) {
|
71
|
+
return tsplus_module_3.nothing(fileName_1 + ":27:21");
|
72
|
+
}
|
73
|
+
return tsplus_module_3.just(this.queue.size - this.takers.size + this.strategy.surplusSize, fileName_1 + ":29:16");
|
74
|
+
}
|
75
|
+
unsafeOffer(a) {
|
76
|
+
if (this.shutdownFlag.get) {
|
77
|
+
return false;
|
78
|
+
}
|
79
|
+
let noRemaining;
|
80
|
+
if (this.queue.size === 0) {
|
81
|
+
const taker = this.takers.dequeue(undefined);
|
82
|
+
if (taker != null) {
|
83
|
+
unsafeCompletePromise(taker, a);
|
84
|
+
noRemaining = true;
|
85
|
+
} else {
|
86
|
+
noRemaining = false;
|
87
|
+
}
|
88
|
+
} else {
|
89
|
+
noRemaining = false;
|
90
|
+
}
|
91
|
+
if (noRemaining) {
|
92
|
+
return true;
|
93
|
+
}
|
94
|
+
const succeeded = this.queue.enqueue(a);
|
95
|
+
unsafeCompleteTakers(this.strategy, this.queue, this.takers);
|
96
|
+
return succeeded;
|
67
97
|
}
|
68
98
|
offer(a, __tsplusTrace) {
|
69
99
|
return tsplus_module_2.defer(() => {
|
70
100
|
if (this.shutdownFlag.get) {
|
71
|
-
return
|
101
|
+
return tsplus_module_4.interrupt;
|
72
102
|
} else {
|
73
103
|
const taker = this.takers.dequeue(undefined);
|
74
104
|
if (taker != null) {
|
75
105
|
unsafeCompletePromise(taker, a);
|
76
|
-
return tsplus_module_2.succeedNow(true, fileName_1 + ":
|
106
|
+
return tsplus_module_2.succeedNow(true, fileName_1 + ":66:31");
|
77
107
|
} else {
|
78
108
|
const succeeded = this.queue.enqueue(a);
|
79
109
|
if (succeeded) {
|
80
|
-
return tsplus_module_2.succeedNow(true, fileName_1 + ":
|
110
|
+
return tsplus_module_2.succeedNow(true, fileName_1 + ":71:33");
|
81
111
|
} else {
|
82
|
-
return this.strategy.handleSurplus(
|
112
|
+
return this.strategy.handleSurplus(tsplus_module_5.single(a), this.queue, this.takers, this.shutdownFlag, fileName_1 + ":73:47");
|
83
113
|
}
|
84
114
|
}
|
85
115
|
}
|
86
|
-
}, fileName_1 + ":
|
116
|
+
}, fileName_1 + ":58:20");
|
87
117
|
}
|
88
118
|
offerAll(as, __tsplusTrace) {
|
89
|
-
const arr =
|
119
|
+
const arr = tsplus_module_5.from(as);
|
90
120
|
return tsplus_module_2.defer(() => {
|
91
121
|
if (this.shutdownFlag.get) {
|
92
|
-
return
|
122
|
+
return tsplus_module_4.interrupt;
|
93
123
|
} else {
|
94
|
-
const pTakers = this.queue.isEmpty ? unsafeDequeueN(this.takers, arr.length) :
|
95
|
-
const [forTakers, remaining] =
|
96
|
-
|
124
|
+
const pTakers = this.queue.isEmpty ? unsafeDequeueN(this.takers, arr.length) : tsplus_module_6.empty();
|
125
|
+
const [forTakers, remaining] = tsplus_module_7.splitAt(pTakers.length)(arr);
|
126
|
+
tsplus_module_7.forEach(([taker, item]) => {
|
97
127
|
unsafeCompletePromise(taker, item);
|
98
|
-
})(
|
128
|
+
})(tsplus_module_7.zip(forTakers)(pTakers));
|
99
129
|
if (remaining.length === 0) {
|
100
|
-
return tsplus_module_2.succeedNow(true, fileName_1 + ":
|
130
|
+
return tsplus_module_2.succeedNow(true, fileName_1 + ":93:31");
|
101
131
|
}
|
102
132
|
const surplus = unsafeOfferAll(this.queue, remaining);
|
103
133
|
unsafeCompleteTakers(this.strategy, this.queue, this.takers);
|
104
134
|
if (surplus.length === 0) {
|
105
|
-
return tsplus_module_2.succeedNow(true, fileName_1 + ":
|
135
|
+
return tsplus_module_2.succeedNow(true, fileName_1 + ":101:31");
|
106
136
|
} else {
|
107
|
-
return this.strategy.handleSurplus(surplus, this.queue, this.takers, this.shutdownFlag, fileName_1 + ":
|
137
|
+
return this.strategy.handleSurplus(surplus, this.queue, this.takers, this.shutdownFlag, fileName_1 + ":103:45");
|
108
138
|
}
|
109
139
|
}
|
110
|
-
}, fileName_1 + ":
|
140
|
+
}, fileName_1 + ":82:20");
|
111
141
|
}
|
112
142
|
takeUpTo(max, __tsplusTrace) {
|
113
143
|
return tsplus_module_2.defer(() => {
|
114
144
|
if (this.shutdownFlag.get) {
|
115
|
-
return
|
145
|
+
return tsplus_module_4.interrupt;
|
116
146
|
} else {
|
117
147
|
return tsplus_module_2.succeed(() => {
|
118
148
|
const as = unsafeDequeueN(this.queue, max);
|
119
|
-
this.strategy.unsafeOnQueueEmptySpace(this.queue, this.takers, fileName_1 + ":
|
149
|
+
this.strategy.unsafeOnQueueEmptySpace(this.queue, this.takers, fileName_1 + ":171:48");
|
120
150
|
return as;
|
121
|
-
}, fileName_1 + ":
|
151
|
+
}, fileName_1 + ":169:26");
|
122
152
|
}
|
123
|
-
}, fileName_1 + ":
|
153
|
+
}, fileName_1 + ":165:20");
|
124
154
|
}
|
125
155
|
}
|
126
156
|
function unsafeCreateQueue(queue, takers, shutdownHook, shutdownFlag, strategy) {
|
127
157
|
return new UnsafeQueue(queue, takers, shutdownHook, shutdownFlag, strategy);
|
128
158
|
}
|
129
159
|
export function unsafeMakeQueue(strategy) {
|
130
|
-
return queue => tsplus_module_2.map(p => unsafeCreateQueue(queue, unbounded(), p, new AtomicBoolean(false), strategy), fileName_1 + ":
|
160
|
+
return queue => tsplus_module_2.map(p => unsafeCreateQueue(queue, unbounded(), p, new AtomicBoolean(false), strategy), fileName_1 + ":191:35")(tsplus_module_9.make(fileName_1 + ":191:16"));
|
131
161
|
}
|
132
162
|
export function unsafeOfferAll(q, as) {
|
133
163
|
let bs = as;
|
134
164
|
while (bs.length > 0) {
|
135
|
-
if (!q.enqueue(
|
165
|
+
if (!q.enqueue(tsplus_module_7.unsafeGet(0)(bs))) {
|
136
166
|
return bs;
|
137
167
|
} else {
|
138
|
-
bs =
|
168
|
+
bs = tsplus_module_7.drop(1)(bs);
|
139
169
|
}
|
140
170
|
}
|
141
171
|
return bs;
|
142
172
|
}
|
143
173
|
export function unsafePollAll(q) {
|
144
|
-
let as =
|
174
|
+
let as = tsplus_module_6.empty();
|
145
175
|
while (!q.isEmpty) {
|
146
|
-
as =
|
176
|
+
as = tsplus_module_7.append(q.dequeue(undefined))(as);
|
147
177
|
}
|
148
178
|
return as;
|
149
179
|
}
|
150
180
|
export function unsafeCompletePromise(p, a) {
|
151
|
-
return tsplus_module_1.unsafeDone(tsplus_module_2.succeedNow(a, fileName_1 + ":
|
181
|
+
return tsplus_module_1.unsafeDone(tsplus_module_2.succeedNow(a, fileName_1 + ":215:36"), fileName_1 + ":215:22")(p);
|
152
182
|
}
|
153
183
|
export function unsafeRemove(q, a) {
|
154
|
-
return unsafeOfferAll(q,
|
184
|
+
return unsafeOfferAll(q, tsplus_module_7.filter(b => a !== b)(unsafePollAll(q)));
|
155
185
|
}
|
156
186
|
function unsafeDequeueN(q, max) {
|
157
187
|
let j = 0;
|
158
|
-
let as =
|
188
|
+
let as = tsplus_module_6.empty();
|
159
189
|
while (j < max) {
|
160
190
|
const p = q.dequeue(undefined);
|
161
191
|
if (p != null) {
|
162
|
-
as =
|
192
|
+
as = tsplus_module_7.append(p)(as);
|
163
193
|
} else {
|
164
194
|
return as;
|
165
195
|
}
|
@@ -175,9 +205,9 @@ export function unsafeCompleteTakers(strategy, queue, takers) {
|
|
175
205
|
const element = queue.dequeue(undefined);
|
176
206
|
if (element != null) {
|
177
207
|
unsafeCompletePromise(taker, element);
|
178
|
-
strategy.unsafeOnQueueEmptySpace(queue, takers, fileName_1 + ":
|
208
|
+
strategy.unsafeOnQueueEmptySpace(queue, takers, fileName_1 + ":252:41");
|
179
209
|
} else {
|
180
|
-
unsafeOfferAll(takers,
|
210
|
+
unsafeOfferAll(takers, tsplus_module_7.prepend(taker)(unsafePollAll(takers)));
|
181
211
|
}
|
182
212
|
keepPolling = true;
|
183
213
|
} else {
|