@fncts/io 0.0.30 → 0.0.31

Sign up to get free protection for your applications and to get access to all the features.
Files changed (59) hide show
  1. package/IO/api/blocking.d.ts +7 -0
  2. package/IO.d.ts +1 -0
  3. package/Ref/Synchronized/definition.d.ts +3 -3
  4. package/Semaphore.d.ts +30 -0
  5. package/SubscriptionRef.d.ts +3 -3
  6. package/_cjs/Channel/api/mapOutConcurrentIO.cjs +14 -16
  7. package/_cjs/Channel/api/mapOutConcurrentIO.cjs.map +1 -1
  8. package/_cjs/Channel/api/mergeAllWith.cjs +30 -32
  9. package/_cjs/Channel/api/mergeAllWith.cjs.map +1 -1
  10. package/_cjs/IO/api/blocking.cjs +20 -0
  11. package/_cjs/IO/api/blocking.cjs.map +1 -0
  12. package/_cjs/IO.cjs +11 -0
  13. package/_cjs/IO.cjs.map +1 -1
  14. package/_cjs/Ref/Synchronized/constructors.cjs +4 -5
  15. package/_cjs/Ref/Synchronized/constructors.cjs.map +1 -1
  16. package/_cjs/Ref/Synchronized/definition.cjs +1 -2
  17. package/_cjs/Ref/Synchronized/definition.cjs.map +1 -1
  18. package/_cjs/Semaphore.cjs +90 -0
  19. package/_cjs/Semaphore.cjs.map +1 -0
  20. package/_cjs/Stream/api.cjs +47 -49
  21. package/_cjs/Stream/api.cjs.map +1 -1
  22. package/_cjs/SubscriptionRef.cjs +2 -3
  23. package/_cjs/SubscriptionRef.cjs.map +1 -1
  24. package/_cjs/internal/BackgroundScheduler.cjs +199 -0
  25. package/_cjs/internal/BackgroundScheduler.cjs.map +1 -0
  26. package/_mjs/Channel/api/mapOutConcurrentIO.mjs +14 -16
  27. package/_mjs/Channel/api/mapOutConcurrentIO.mjs.map +1 -1
  28. package/_mjs/Channel/api/mergeAllWith.mjs +30 -32
  29. package/_mjs/Channel/api/mergeAllWith.mjs.map +1 -1
  30. package/_mjs/IO/api/blocking.mjs +12 -0
  31. package/_mjs/IO/api/blocking.mjs.map +1 -0
  32. package/_mjs/IO.mjs +1 -0
  33. package/_mjs/IO.mjs.map +1 -1
  34. package/_mjs/Ref/Synchronized/constructors.mjs +4 -5
  35. package/_mjs/Ref/Synchronized/constructors.mjs.map +1 -1
  36. package/_mjs/Ref/Synchronized/definition.mjs +1 -2
  37. package/_mjs/Ref/Synchronized/definition.mjs.map +1 -1
  38. package/_mjs/Semaphore.mjs +78 -0
  39. package/_mjs/Semaphore.mjs.map +1 -0
  40. package/_mjs/Stream/api.mjs +47 -49
  41. package/_mjs/Stream/api.mjs.map +1 -1
  42. package/_mjs/SubscriptionRef.mjs +2 -3
  43. package/_mjs/SubscriptionRef.mjs.map +1 -1
  44. package/_mjs/internal/BackgroundScheduler.mjs +191 -0
  45. package/_mjs/internal/BackgroundScheduler.mjs.map +1 -0
  46. package/_src/Channel/api/mapOutConcurrentIO.ts +1 -1
  47. package/_src/Channel/api/mergeAllWith.ts +1 -1
  48. package/_src/IO/api/blocking.ts +9 -0
  49. package/_src/IO.ts +1 -0
  50. package/_src/Ref/Synchronized/constructors.ts +2 -2
  51. package/_src/Ref/Synchronized/definition.ts +1 -1
  52. package/_src/Semaphore.ts +81 -0
  53. package/_src/Stream/api.ts +1 -1
  54. package/_src/SubscriptionRef.ts +2 -2
  55. package/_src/global.ts +4 -0
  56. package/_src/internal/BackgroundScheduler.ts +276 -0
  57. package/global.d.ts +4 -0
  58. package/internal/BackgroundScheduler.d.ts +47 -0
  59. package/package.json +2 -2
@@ -5,21 +5,19 @@ import * as tsplus_module_3 from "@fncts/base/data/Either/destructors";
5
5
  import * as tsplus_module_4 from "@fncts/io/Queue/api/operations";
6
6
  import * as tsplus_module_5 from "@fncts/io/IO/api";
7
7
  import * as tsplus_module_6 from "@fncts/base/data/Either/constructors";
8
- import * as tsplus_module_7 from "@fncts/io/TSemaphore/api";
9
- import * as tsplus_module_8 from "@fncts/io/IO/api/interrupt";
10
- import * as tsplus_module_9 from "@fncts/io/Future/api";
11
- import * as tsplus_module_10 from "@fncts/io/IO/api/raceFirst";
12
- import * as tsplus_module_11 from "@fncts/io/IO/api/fulfill";
13
- import * as tsplus_module_12 from "@fncts/io/Future/constructors";
14
- import * as tsplus_module_13 from "@fncts/io/IO/api/fork";
15
- import * as tsplus_module_14 from "@fncts/io/Channel/api/toPull";
16
- import * as tsplus_module_15 from "@fncts/io/TSemaphore/constructors";
17
- import * as tsplus_module_16 from "@fncts/io/STM/api/atomically";
18
- import * as tsplus_module_17 from "@fncts/io/Queue/constructors";
19
- import * as tsplus_module_18 from "@fncts/io/IO/api/acquireRelease";
20
- import * as tsplus_module_19 from "@fncts/io/Fiber/api/interruptAll";
21
- import * as tsplus_module_20 from "@fncts/io/IO/api/addFinalizer";
22
- import * as tsplus_module_21 from "@fncts/io/IO/api/withChildren";
8
+ import * as tsplus_module_7 from "@fncts/io/IO/api/interrupt";
9
+ import * as tsplus_module_8 from "@fncts/io/Future/api";
10
+ import * as tsplus_module_9 from "@fncts/io/IO/api/raceFirst";
11
+ import * as tsplus_module_10 from "@fncts/io/IO/api/fulfill";
12
+ import * as tsplus_module_11 from "@fncts/io/Future/constructors";
13
+ import * as tsplus_module_12 from "@fncts/io/IO/api/fork";
14
+ import * as tsplus_module_13 from "@fncts/io/Channel/api/toPull";
15
+ import * as tsplus_module_14 from "@fncts/io/Semaphore";
16
+ import * as tsplus_module_15 from "@fncts/io/Queue/constructors";
17
+ import * as tsplus_module_16 from "@fncts/io/IO/api/acquireRelease";
18
+ import * as tsplus_module_17 from "@fncts/io/Fiber/api/interruptAll";
19
+ import * as tsplus_module_18 from "@fncts/io/IO/api/addFinalizer";
20
+ import * as tsplus_module_19 from "@fncts/io/IO/api/withChildren";
23
21
  /**
24
22
  * @tsplus pipeable fncts.io.Channel mapOutConcurrentIO
25
23
  */
@@ -28,7 +26,7 @@ export function mapOutConcurrentIO(n, f) {
28
26
  return tsplus_module_2.unwrapScoped(() => tsplus_module_5.map(queue => {
29
27
  const consumer = tsplus_module_2.unwrap(() => tsplus_module_5.matchCause(tsplus_module_1.failCauseNow, r => tsplus_module_3.match(tsplus_module_1.endNow, outElem => tsplus_module_1.zipRight(consumer)(tsplus_module_2.writeNow(outElem)))(r), fileName_1 + ":58:42")(tsplus_module_5.flatten(tsplus_module_4.take(queue, fileName_1 + ":58:18"), fileName_1 + ":58:23")));
30
28
  return consumer;
31
- }, fileName_1 + ":55:12")(tsplus_module_21.withChildren(getChildren => tsplus_module_5.flatMap(() => tsplus_module_5.flatMap(queue => tsplus_module_5.flatMap(errorSignal => tsplus_module_5.flatMap(permits => tsplus_module_5.flatMap(pull => tsplus_module_5.map(() => queue, fileName_1 + ":24:12")(tsplus_module_13.fork(tsplus_module_8.uninterruptible(tsplus_module_5.forever(tsplus_module_5.matchCauseIO(cause => tsplus_module_4.offer(tsplus_module_5.failCauseNow(cause, fileName_1 + ":26:53"), fileName_1 + ":26:37")(queue), r => tsplus_module_3.match(outDone => tsplus_module_5.asUnit(tsplus_module_5.zipRight(tsplus_module_4.offer(tsplus_module_5.succeedNow(tsplus_module_6.left(outDone), fileName_1 + ":32:72"), fileName_1 + ":32:58")(queue), fileName_1 + ":32:46")(tsplus_module_8.interruptible(tsplus_module_7.withPermits(permits, fileName_1 + ":30:28")(n)(tsplus_module_5.unit), fileName_1 + ":31:47")), fileName_1 + ":32:96"), outElem => tsplus_module_5.flatMap(p => tsplus_module_5.flatMap(latch => tsplus_module_5.flatMap(() => tsplus_module_5.flatMap(() => tsplus_module_5.map(() => void 0, fileName_1 + ":48:24")(tsplus_module_9.wait(latch, fileName_1 + ":48:30")), fileName_1 + ":38:24")(tsplus_module_7.withPermit(permits, fileName_1 + ":39:32")(tsplus_module_5.zipRight(tsplus_module_11.fulfill(p, fileName_1 + ":44:39")(tsplus_module_5.tapErrorCause(c => tsplus_module_9.failCause(c, fileName_1 + ":43:64")(p), fileName_1 + ":43:45")(tsplus_module_10.raceFirst(f(outElem), fileName_1 + ":42:41")(tsplus_module_9.wait(errorSignal, fileName_1 + ":41:40")))), fileName_1 + ":40:60")(tsplus_module_9.succeed_(undefined, fileName_1 + ":40:40")(latch)))), fileName_1 + ":37:24")(tsplus_module_4.offer(tsplus_module_5.map(tsplus_module_6.right, fileName_1 + ":37:48")(tsplus_module_9.wait(p, fileName_1 + ":37:38")), fileName_1 + ":37:36")(queue)), fileName_1 + ":36:38")(tsplus_module_12.make(fileName_1 + ":36:50")), fileName_1 + ":35:38")(tsplus_module_12.make(fileName_1 + ":35:50")))(r), fileName_1 + ":25:30")(pull), fileName_1 + ":51:14"), fileName_1 + ":51:22"), fileName_1 + ":51:38")), fileName_1 + ":23:32")(tsplus_module_14.toPull(self)), fileName_1 + ":22:32")(tsplus_module_16.atomically(tsplus_module_15.make(n, fileName_1 + ":22:48"), fileName_1 + ":22:51")), fileName_1 + ":21:32")(tsplus_module_12.make(fileName_1 + ":21:44")), fileName_1 + ":15:26")(tsplus_module_18.acquireRelease(() => tsplus_module_17.makeBounded(n, fileName_1 + ":17:32"), queue => tsplus_module_4.shutdown(queue, fileName_1 + ":18:31"), fileName_1 + ":16:30")), fileName_1 + ":14:12")(tsplus_module_20.addFinalizer(() => tsplus_module_5.flatMap(tsplus_module_19.interruptAll, fileName_1 + ":14:48")(getChildren), fileName_1 + ":14:28")), fileName_1 + ":12:22")));
29
+ }, fileName_1 + ":55:12")(tsplus_module_19.withChildren(getChildren => tsplus_module_5.flatMap(() => tsplus_module_5.flatMap(queue => tsplus_module_5.flatMap(errorSignal => tsplus_module_5.flatMap(permits => tsplus_module_5.flatMap(pull => tsplus_module_5.map(() => queue, fileName_1 + ":24:12")(tsplus_module_12.fork(tsplus_module_7.uninterruptible(tsplus_module_5.forever(tsplus_module_5.matchCauseIO(cause => tsplus_module_4.offer(tsplus_module_5.failCauseNow(cause, fileName_1 + ":26:53"), fileName_1 + ":26:37")(queue), r => tsplus_module_3.match(outDone => tsplus_module_5.asUnit(tsplus_module_5.zipRight(tsplus_module_4.offer(tsplus_module_5.succeedNow(tsplus_module_6.left(outDone), fileName_1 + ":32:72"), fileName_1 + ":32:58")(queue), fileName_1 + ":32:46")(tsplus_module_7.interruptible(permits.withPermits(n)(tsplus_module_5.unit), fileName_1 + ":31:47")), fileName_1 + ":32:96"), outElem => tsplus_module_5.flatMap(p => tsplus_module_5.flatMap(latch => tsplus_module_5.flatMap(() => tsplus_module_5.flatMap(() => tsplus_module_5.map(() => void 0, fileName_1 + ":48:24")(tsplus_module_8.wait(latch, fileName_1 + ":48:30")), fileName_1 + ":38:24")(permits.withPermit(tsplus_module_5.zipRight(tsplus_module_10.fulfill(p, fileName_1 + ":44:39")(tsplus_module_5.tapErrorCause(c => tsplus_module_8.failCause(c, fileName_1 + ":43:64")(p), fileName_1 + ":43:45")(tsplus_module_9.raceFirst(f(outElem), fileName_1 + ":42:41")(tsplus_module_8.wait(errorSignal, fileName_1 + ":41:40")))), fileName_1 + ":40:60")(tsplus_module_8.succeed_(undefined, fileName_1 + ":40:40")(latch)))), fileName_1 + ":37:24")(tsplus_module_4.offer(tsplus_module_5.map(tsplus_module_6.right, fileName_1 + ":37:48")(tsplus_module_8.wait(p, fileName_1 + ":37:38")), fileName_1 + ":37:36")(queue)), fileName_1 + ":36:38")(tsplus_module_11.make(fileName_1 + ":36:50")), fileName_1 + ":35:38")(tsplus_module_11.make(fileName_1 + ":35:50")))(r), fileName_1 + ":25:30")(pull), fileName_1 + ":51:14"), fileName_1 + ":51:22"), fileName_1 + ":51:38")), fileName_1 + ":23:32")(tsplus_module_13.toPull(self)), fileName_1 + ":22:32")(tsplus_module_14.makeSemaphore(n, fileName_1 + ":22:42")), fileName_1 + ":21:32")(tsplus_module_11.make(fileName_1 + ":21:44")), fileName_1 + ":15:26")(tsplus_module_16.acquireRelease(() => tsplus_module_15.makeBounded(n, fileName_1 + ":17:32"), queue => tsplus_module_4.shutdown(queue, fileName_1 + ":18:31"), fileName_1 + ":16:30")), fileName_1 + ":14:12")(tsplus_module_18.addFinalizer(() => tsplus_module_5.flatMap(tsplus_module_17.interruptAll, fileName_1 + ":14:48")(getChildren), fileName_1 + ":14:28")), fileName_1 + ":12:22")));
32
30
  };
33
31
  }
34
32
  //# sourceMappingURL=mapOutConcurrentIO.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"mapOutConcurrentIO.mjs","mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA;;;AAGA,OAAM,SAAUA,kBAAkB,CAChCC,CAAS,EACTC,CAA8C;EAE9C,OACEC,IAAmE,IACgB;IACnF,OAAOC,mCACLC,oBA2COC,KAAK,IAAI;MACd,MAAMC,QAAQ,GACZH,6BACEC,yDAAqDG,CAAC,IACpDC,8CAAyBC,OAAO,IAAKC,yBAAmCJ,QAAQ,EAA3CH,yBAAiBM,OAAO,CAAC,CAAmB,EAAjFF,CAAC,CAAiF,sEADpFF,KAAK,iDAEJ,CACF;MACH,OAAOC,QAAQ;IACjB,CAAC,yBAnDDK,8BAAiBC,WAAW,IAAIR,sDAGtBC,KAAK,4BAMLQ,WAAW,4BACXC,OAAO,4BACPC,IAAI,8BA8BHV,KAAK,uGA5BVD,6BACGY,KAAK,IAAKC,sBAAYb,6BAAgBY,KAAK,wBAAC,yBAAlCX,KAAK,CAA8B,EAC7CE,CAAC,IACAC,sBACGU,OAAO,IAAId,uBACVA,yBAE0Ba,sBAAYb,2BAAce,qBAAYD,OAAO,CAAC,wBAAC,yBAA/Cb,KAAK,CAA2C,uDAF1Ee,mCAAO,yBACQpB,CAAC,CAAC,sBAAS,yBACiD,wBAAO,EACnFS,OAAO,IAAIL,wBAEFiB,CAAC,4BACDC,KAAK,8IAYTA,KAAK,kDATLF,kCAAO,yBACLhB,yBACEmB,yBAGWF,CAAC,yBAHZjB,8BAEkBoB,CAAC,IAAKC,0BAAYD,CAAC,yBAAbH,CAAC,CAAa,yBAFtCK,2BACazB,CAAC,CAACQ,OAAO,CAAC,8CADvBI,WAAW,yBACa,CACe,CAC1B,yBAJfY,yBAAcE,SAAS,yBAAvBL,KAAK,CAAmB,CAKvB,CACF,0BATDL,sBAAYb,wFAAC,yBAAwB,yBAArCC,KAAK,CAAiC,0BADxBuB,4CAA0B,0BAD1BA,4CAAgC,CAchD,EArBNrB,CAAC,CAsBA,yBAzBLQ,IAAI,CA0BH,0HA5BmBb,IAAI,uDADJ2B,sBAAgB7B,CAAC,wBAAC,kDADlB4B,4CAA6B,0BALjDE,sCACEC,6BAAyE/B,CAAC,wBAAC,EAC1EK,KAAK,IAAIY,yBAACZ,KAAK,wBAAS,wBAC1B,0BALD2B,oCAAgB5B,yFAAW,CAA4B,wBAAC,CAwC1D,wBACH,CAQC,CACH;EACH,CAAC;AACH","names":["mapOutConcurrentIO","n","f","self","tsplus_module_2","tsplus_module_5","queue","consumer","r","tsplus_module_3","outElem","tsplus_module_1","tsplus_module_21","getChildren","errorSignal","permits","pull","cause","tsplus_module_4","outDone","tsplus_module_6","tsplus_module_7","p","latch","tsplus_module_11","c","tsplus_module_9","tsplus_module_10","undefined","tsplus_module_12","tsplus_module_15","tsplus_module_18","tsplus_module_17","tsplus_module_20"],"sourceRoot":"","sources":["../../../_src/Channel/api/mapOutConcurrentIO.ts"],"sourcesContent":[null]}
1
+ {"version":3,"file":"mapOutConcurrentIO.mjs","mappings":";;;;;;;;;;;;;;;;;;;;AAAA;;;AAGA,OAAM,SAAUA,kBAAkB,CAChCC,CAAS,EACTC,CAA8C;EAE9C,OACEC,IAAmE,IACgB;IACnF,OAAOC,mCACLC,oBA2COC,KAAK,IAAI;MACd,MAAMC,QAAQ,GACZH,6BACEC,yDAAqDG,CAAC,IACpDC,8CAAyBC,OAAO,IAAKC,yBAAmCJ,QAAQ,EAA3CH,yBAAiBM,OAAO,CAAC,CAAmB,EAAjFF,CAAC,CAAiF,sEADpFF,KAAK,iDAEJ,CACF;MACH,OAAOC,QAAQ;IACjB,CAAC,yBAnDDK,8BAAiBC,WAAW,IAAIR,sDAGtBC,KAAK,4BAMLQ,WAAW,4BACXC,OAAO,4BACPC,IAAI,8BA8BHV,KAAK,uGA5BVD,6BACGY,KAAK,IAAKC,sBAAYb,6BAAgBY,KAAK,wBAAC,yBAAlCX,KAAK,CAA8B,EAC7CE,CAAC,IACAC,sBACGU,OAAO,IAAId,uBACVA,yBAE0Ba,sBAAYb,2BAAce,qBAAYD,OAAO,CAAC,wBAAC,yBAA/Cb,KAAK,CAA2C,uDAF1ES,OAAO,CACJM,WAAW,CAACpB,CAAC,CAAC,sBAAS,yBACiD,wBAAO,EACnFS,OAAO,IAAIL,wBAEFiB,CAAC,4BACDC,KAAK,8IAYTA,KAAK,kDATLR,OAAO,CAACS,UAAU,CAChBnB,yBACEoB,yBAGWH,CAAC,yBAHZjB,8BAEkBqB,CAAC,IAAKC,0BAAYD,CAAC,yBAAbJ,CAAC,CAAa,yBAFtCM,0BACa1B,CAAC,CAACQ,OAAO,CAAC,8CADvBI,WAAW,yBACa,CACe,CAC1B,yBAJfa,yBAAcE,SAAS,yBAAvBN,KAAK,CAAmB,CAKvB,CACF,0BATDL,sBAAYb,wFAAC,yBAAwB,yBAArCC,KAAK,CAAiC,0BADxBwB,4CAA0B,0BAD1BA,4CAAgC,CAchD,EArBNtB,CAAC,CAsBA,yBAzBLQ,IAAI,CA0BH,0HA5BmBb,IAAI,2BADJ4B,+BAAU9B,CAAC,wBAAC,0BADZ6B,4CAA6B,0BALjDE,sCACEC,6BAAyEhC,CAAC,wBAAC,EAC1EK,KAAK,IAAIY,yBAACZ,KAAK,wBAAS,wBAC1B,0BALD4B,oCAAgB7B,yFAAW,CAA4B,wBAAC,CAwC1D,wBACH,CAQC,CACH;EACH,CAAC;AACH","names":["mapOutConcurrentIO","n","f","self","tsplus_module_2","tsplus_module_5","queue","consumer","r","tsplus_module_3","outElem","tsplus_module_1","tsplus_module_19","getChildren","errorSignal","permits","pull","cause","tsplus_module_4","outDone","tsplus_module_6","withPermits","p","latch","withPermit","tsplus_module_10","c","tsplus_module_8","tsplus_module_9","undefined","tsplus_module_11","tsplus_module_14","tsplus_module_16","tsplus_module_15","tsplus_module_18"],"sourceRoot":"","sources":["../../../_src/Channel/api/mapOutConcurrentIO.ts"],"sourcesContent":[null]}
@@ -5,28 +5,26 @@ import * as tsplus_module_3 from "@fncts/base/data/Either/destructors";
5
5
  import * as tsplus_module_4 from "@fncts/io/Queue/api/operations";
6
6
  import * as tsplus_module_5 from "@fncts/io/IO/api";
7
7
  import * as tsplus_module_6 from "@fncts/io/Fiber/api/interruptAll";
8
- import * as tsplus_module_7 from "@fncts/io/TSemaphore/api";
9
- import * as tsplus_module_8 from "@fncts/io/Fiber/api/interrupt";
10
- import * as tsplus_module_9 from "@fncts/base/data/Either/constructors";
11
- import * as tsplus_module_10 from "@fncts/base/data/Maybe/destructors";
12
- import * as tsplus_module_11 from "@fncts/io/Ref/api/get";
13
- import * as tsplus_module_12 from "@fncts/io/Future/api";
14
- import * as tsplus_module_13 from "@fncts/io/IO/api/raceWith";
15
- import * as tsplus_module_14 from "@fncts/io/IO/api/fork";
16
- import * as tsplus_module_15 from "@fncts/io/IO/api/race";
17
- import * as tsplus_module_16 from "@fncts/io/Channel/api/toPull";
18
- import * as tsplus_module_17 from "@fncts/io/IO/api/scoped";
19
- import * as tsplus_module_18 from "@fncts/io/Future/constructors";
20
- import * as tsplus_module_19 from "@fncts/base/data/Maybe/constructors";
21
- import * as tsplus_module_20 from "@fncts/io/Ref/api/modify";
22
- import * as tsplus_module_21 from "@fncts/base/data/Maybe/definition";
23
- import * as tsplus_module_22 from "@fncts/io/TSemaphore/constructors";
24
- import * as tsplus_module_23 from "@fncts/io/STM/api/atomically";
25
- import * as tsplus_module_24 from "@fncts/io/Ref/constructors";
26
- import * as tsplus_module_25 from "@fncts/io/Queue/constructors";
27
- import * as tsplus_module_26 from "@fncts/io/IO/api/acquireRelease";
28
- import * as tsplus_module_27 from "@fncts/io/IO/api/addFinalizer";
29
- import * as tsplus_module_28 from "@fncts/io/IO/api/withChildren";
8
+ import * as tsplus_module_7 from "@fncts/io/Fiber/api/interrupt";
9
+ import * as tsplus_module_8 from "@fncts/base/data/Either/constructors";
10
+ import * as tsplus_module_9 from "@fncts/base/data/Maybe/destructors";
11
+ import * as tsplus_module_10 from "@fncts/io/Ref/api/get";
12
+ import * as tsplus_module_11 from "@fncts/io/Future/api";
13
+ import * as tsplus_module_12 from "@fncts/io/IO/api/raceWith";
14
+ import * as tsplus_module_13 from "@fncts/io/IO/api/fork";
15
+ import * as tsplus_module_14 from "@fncts/io/IO/api/race";
16
+ import * as tsplus_module_15 from "@fncts/io/Channel/api/toPull";
17
+ import * as tsplus_module_16 from "@fncts/io/IO/api/scoped";
18
+ import * as tsplus_module_17 from "@fncts/io/Future/constructors";
19
+ import * as tsplus_module_18 from "@fncts/base/data/Maybe/constructors";
20
+ import * as tsplus_module_19 from "@fncts/io/Ref/api/modify";
21
+ import * as tsplus_module_20 from "@fncts/base/data/Maybe/definition";
22
+ import * as tsplus_module_21 from "@fncts/io/Semaphore";
23
+ import * as tsplus_module_22 from "@fncts/io/Ref/constructors";
24
+ import * as tsplus_module_23 from "@fncts/io/Queue/constructors";
25
+ import * as tsplus_module_24 from "@fncts/io/IO/api/acquireRelease";
26
+ import * as tsplus_module_25 from "@fncts/io/IO/api/addFinalizer";
27
+ import * as tsplus_module_26 from "@fncts/io/IO/api/withChildren";
30
28
  import { identity } from "@fncts/base/data/function";
31
29
  /**
32
30
  * @tsplus pipeable fncts.io.Channel mergeAllWith
@@ -36,23 +34,23 @@ export function mergeAllWith(n, f, bufferSize = 16, mergeStrategy = "BackPressur
36
34
  return tsplus_module_2.unwrapScoped(() => tsplus_module_5.map(queue => {
37
35
  const consumer = tsplus_module_2.unwrap(() => tsplus_module_5.matchCause(tsplus_module_1.failCauseNow, out => tsplus_module_3.match(tsplus_module_1.endNow, outElem => tsplus_module_1.zipRight(consumer)(tsplus_module_2.writeNow(outElem)))(out), fileName_1 + ":121:42")(tsplus_module_5.flatten(tsplus_module_4.take(queue, fileName_1 + ":121:18"), fileName_1 + ":121:23")));
38
36
  return consumer;
39
- }, fileName_1 + ":118:12")(tsplus_module_28.withChildren(getChildren => tsplus_module_5.flatMap(() => tsplus_module_5.flatMap(queue => tsplus_module_5.flatMap(cancelers => tsplus_module_5.flatMap(lastDone => tsplus_module_5.flatMap(errorSignal => tsplus_module_5.flatMap(permits => tsplus_module_5.flatMap(pull => {
40
- const evaluatePull = pull => tsplus_module_5.flatMap(md1 => tsplus_module_10.match(() => tsplus_module_5.unit, outDone => tsplus_module_20.update(md2 => tsplus_module_10.match(() => tsplus_module_19.just(outDone), lastDone => tsplus_module_19.just(f(lastDone, outDone)))(md2), fileName_1 + ":53:36")(lastDone))(md1), fileName_1 + ":49:23")(tsplus_module_5.repeatUntil(m => tsplus_module_21.isJust(m), fileName_1 + ":48:27")(tsplus_module_5.flatMap(ea => tsplus_module_3.match(outDone => tsplus_module_5.succeedNow(tsplus_module_19.just(outDone), fileName_1 + ":44:45"), outElem => tsplus_module_5.as(() => tsplus_module_19.nothing(), fileName_1 + ":45:84")(tsplus_module_4.offer(tsplus_module_5.succeedNow(tsplus_module_9.right(outElem), fileName_1 + ":45:57"), fileName_1 + ":45:43")(queue)))(ea), fileName_1 + ":42:23")(pull)));
41
- return tsplus_module_5.map(() => queue, fileName_1 + ":61:12")(tsplus_module_14.fork(tsplus_module_5.repeatWhile(identity, fileName_1 + ":114:27")(tsplus_module_5.matchCauseIO(cause => tsplus_module_5.zipRight(tsplus_module_5.as(() => false, fileName_1 + ":65:106")(tsplus_module_4.offer(tsplus_module_5.failCauseNow(cause, fileName_1 + ":65:95"), fileName_1 + ":65:79")(queue)), fileName_1 + ":65:67")(tsplus_module_5.flatMap(tsplus_module_6.interruptAll, fileName_1 + ":65:38")(getChildren)), doneOrChannel => tsplus_module_3.match(outDone => tsplus_module_13.raceWith(() => tsplus_module_7.withPermits(permits, fileName_1 + ":70:32")(n)(tsplus_module_5.unit), (_, permitAcquisition) => tsplus_module_5.zipRight(tsplus_module_5.as(() => false, fileName_1 + ":72:106")(tsplus_module_8.interrupt(permitAcquisition)), fileName_1 + ":72:75")(tsplus_module_5.flatMap(tsplus_module_6.interruptAll, fileName_1 + ":72:46")(getChildren)), (_, failureAwait) => tsplus_module_5.zipRight(tsplus_module_5.as(() => false, fileName_1 + ":82:34")(tsplus_module_5.flatMap(maybeDone => tsplus_module_10.match(() => tsplus_module_4.offer(tsplus_module_5.succeedNow(tsplus_module_9.left(outDone), fileName_1 + ":78:66"), fileName_1 + ":78:52")(queue), lastDone => tsplus_module_4.offer(tsplus_module_5.succeedNow(tsplus_module_9.left(f(lastDone, outDone)), fileName_1 + ":79:74"), fileName_1 + ":79:60")(queue))(maybeDone), fileName_1 + ":76:39")(tsplus_module_11.get(lastDone, fileName_1 + ":75:37"))), fileName_1 + ":74:58")(tsplus_module_8.interrupt(failureAwait)), fileName_1 + ":69:49")(tsplus_module_12.wait(errorSignal, fileName_1 + ":69:34")), channel => {
37
+ }, fileName_1 + ":118:12")(tsplus_module_26.withChildren(getChildren => tsplus_module_5.flatMap(() => tsplus_module_5.flatMap(queue => tsplus_module_5.flatMap(cancelers => tsplus_module_5.flatMap(lastDone => tsplus_module_5.flatMap(errorSignal => tsplus_module_5.flatMap(permits => tsplus_module_5.flatMap(pull => {
38
+ const evaluatePull = pull => tsplus_module_5.flatMap(md1 => tsplus_module_9.match(() => tsplus_module_5.unit, outDone => tsplus_module_19.update(md2 => tsplus_module_9.match(() => tsplus_module_18.just(outDone), lastDone => tsplus_module_18.just(f(lastDone, outDone)))(md2), fileName_1 + ":53:36")(lastDone))(md1), fileName_1 + ":49:23")(tsplus_module_5.repeatUntil(m => tsplus_module_20.isJust(m), fileName_1 + ":48:27")(tsplus_module_5.flatMap(ea => tsplus_module_3.match(outDone => tsplus_module_5.succeedNow(tsplus_module_18.just(outDone), fileName_1 + ":44:45"), outElem => tsplus_module_5.as(() => tsplus_module_18.nothing(), fileName_1 + ":45:84")(tsplus_module_4.offer(tsplus_module_5.succeedNow(tsplus_module_8.right(outElem), fileName_1 + ":45:57"), fileName_1 + ":45:43")(queue)))(ea), fileName_1 + ":42:23")(pull)));
39
+ return tsplus_module_5.map(() => queue, fileName_1 + ":61:12")(tsplus_module_13.fork(tsplus_module_5.repeatWhile(identity, fileName_1 + ":114:27")(tsplus_module_5.matchCauseIO(cause => tsplus_module_5.zipRight(tsplus_module_5.as(() => false, fileName_1 + ":65:106")(tsplus_module_4.offer(tsplus_module_5.failCauseNow(cause, fileName_1 + ":65:95"), fileName_1 + ":65:79")(queue)), fileName_1 + ":65:67")(tsplus_module_5.flatMap(tsplus_module_6.interruptAll, fileName_1 + ":65:38")(getChildren)), doneOrChannel => tsplus_module_3.match(outDone => tsplus_module_12.raceWith(() => permits.withPermits(n)(tsplus_module_5.unit), (_, permitAcquisition) => tsplus_module_5.zipRight(tsplus_module_5.as(() => false, fileName_1 + ":72:106")(tsplus_module_7.interrupt(permitAcquisition)), fileName_1 + ":72:75")(tsplus_module_5.flatMap(tsplus_module_6.interruptAll, fileName_1 + ":72:46")(getChildren)), (_, failureAwait) => tsplus_module_5.zipRight(tsplus_module_5.as(() => false, fileName_1 + ":82:34")(tsplus_module_5.flatMap(maybeDone => tsplus_module_9.match(() => tsplus_module_4.offer(tsplus_module_5.succeedNow(tsplus_module_8.left(outDone), fileName_1 + ":78:66"), fileName_1 + ":78:52")(queue), lastDone => tsplus_module_4.offer(tsplus_module_5.succeedNow(tsplus_module_8.left(f(lastDone, outDone)), fileName_1 + ":79:74"), fileName_1 + ":79:60")(queue))(maybeDone), fileName_1 + ":76:39")(tsplus_module_10.get(lastDone, fileName_1 + ":75:37"))), fileName_1 + ":74:58")(tsplus_module_7.interrupt(failureAwait)), fileName_1 + ":69:49")(tsplus_module_11.wait(errorSignal, fileName_1 + ":69:34")), channel => {
42
40
  switch (mergeStrategy) {
43
41
  case "BackPressure":
44
42
  return tsplus_module_5.flatMap(latch => {
45
- const raceIOs = tsplus_module_17.scoped(tsplus_module_5.flatMap(io => tsplus_module_15.race(tsplus_module_12.wait(errorSignal, fileName_1 + ":91:64"))(evaluatePull(io)), fileName_1 + ":90:67")(tsplus_module_16.toPull(channel)), fileName_1 + ":92:30");
46
- return tsplus_module_5.flatMap(() => tsplus_module_5.flatMap(() => tsplus_module_5.map(b => !b, fileName_1 + ":95:60")(tsplus_module_12.isDone(errorSignal, fileName_1 + ":95:49")), fileName_1 + ":94:30")(tsplus_module_12.wait(latch, fileName_1 + ":94:36")), fileName_1 + ":93:30")(tsplus_module_14.fork(tsplus_module_7.withPermit(permits, fileName_1 + ":93:38")(tsplus_module_5.zipRight(raceIOs, fileName_1 + ":93:83")(tsplus_module_12.succeed_(undefined, fileName_1 + ":93:63")(latch))), fileName_1 + ":93:93"));
47
- }, fileName_1 + ":89:46")(tsplus_module_18.make(fileName_1 + ":89:58"));
43
+ const raceIOs = tsplus_module_16.scoped(tsplus_module_5.flatMap(io => tsplus_module_14.race(tsplus_module_11.wait(errorSignal, fileName_1 + ":91:64"))(evaluatePull(io)), fileName_1 + ":90:67")(tsplus_module_15.toPull(channel)), fileName_1 + ":92:30");
44
+ return tsplus_module_5.flatMap(() => tsplus_module_5.flatMap(() => tsplus_module_5.map(b => !b, fileName_1 + ":95:60")(tsplus_module_11.isDone(errorSignal, fileName_1 + ":95:49")), fileName_1 + ":94:30")(tsplus_module_11.wait(latch, fileName_1 + ":94:36")), fileName_1 + ":93:30")(tsplus_module_13.fork(permits.withPermit(tsplus_module_5.zipRight(raceIOs, fileName_1 + ":93:83")(tsplus_module_11.succeed_(undefined, fileName_1 + ":93:63")(latch))), fileName_1 + ":93:93"));
45
+ }, fileName_1 + ":89:46")(tsplus_module_17.make(fileName_1 + ":89:58"));
48
46
  case "BufferSliding":
49
47
  return tsplus_module_5.flatMap(canceler => tsplus_module_5.flatMap(latch => tsplus_module_5.flatMap(size => tsplus_module_5.flatMap(() => {
50
- const raceIOs = tsplus_module_17.scoped(tsplus_module_5.flatMap(io => tsplus_module_15.race(tsplus_module_12.wait(canceler, fileName_1 + ":104:85"))(tsplus_module_15.race(tsplus_module_12.wait(errorSignal, fileName_1 + ":104:64"))(evaluatePull(io))), fileName_1 + ":103:67")(tsplus_module_16.toPull(channel)), fileName_1 + ":105:30");
51
- return tsplus_module_5.flatMap(() => tsplus_module_5.flatMap(() => tsplus_module_5.map(b => !b, fileName_1 + ":108:60")(tsplus_module_12.isDone(errorSignal, fileName_1 + ":108:49")), fileName_1 + ":107:30")(tsplus_module_12.wait(latch, fileName_1 + ":107:36")), fileName_1 + ":106:30")(tsplus_module_14.fork(tsplus_module_7.withPermit(permits, fileName_1 + ":106:38")(tsplus_module_5.zipRight(raceIOs, fileName_1 + ":106:83")(tsplus_module_12.succeed_(undefined, fileName_1 + ":106:63")(latch))), fileName_1 + ":106:93"));
52
- }, fileName_1 + ":102:30")(tsplus_module_5.when(() => size >= 0, fileName_1 + ":102:87")(tsplus_module_5.flatMap(f => tsplus_module_12.succeed_(undefined, fileName_1 + ":102:70")(f), fileName_1 + ":102:53")(tsplus_module_4.take(cancelers, fileName_1 + ":102:40")))), fileName_1 + ":101:47")(tsplus_module_4.size(cancelers, fileName_1 + ":101:57")), fileName_1 + ":100:47")(tsplus_module_18.make(fileName_1 + ":100:59")), fileName_1 + ":99:47")(tsplus_module_18.make(fileName_1 + ":99:59"));
48
+ const raceIOs = tsplus_module_16.scoped(tsplus_module_5.flatMap(io => tsplus_module_14.race(tsplus_module_11.wait(canceler, fileName_1 + ":104:85"))(tsplus_module_14.race(tsplus_module_11.wait(errorSignal, fileName_1 + ":104:64"))(evaluatePull(io))), fileName_1 + ":103:67")(tsplus_module_15.toPull(channel)), fileName_1 + ":105:30");
49
+ return tsplus_module_5.flatMap(() => tsplus_module_5.flatMap(() => tsplus_module_5.map(b => !b, fileName_1 + ":108:60")(tsplus_module_11.isDone(errorSignal, fileName_1 + ":108:49")), fileName_1 + ":107:30")(tsplus_module_11.wait(latch, fileName_1 + ":107:36")), fileName_1 + ":106:30")(tsplus_module_13.fork(permits.withPermit(tsplus_module_5.zipRight(raceIOs, fileName_1 + ":106:83")(tsplus_module_11.succeed_(undefined, fileName_1 + ":106:63")(latch))), fileName_1 + ":106:93"));
50
+ }, fileName_1 + ":102:30")(tsplus_module_5.when(() => size >= 0, fileName_1 + ":102:87")(tsplus_module_5.flatMap(f => tsplus_module_11.succeed_(undefined, fileName_1 + ":102:70")(f), fileName_1 + ":102:53")(tsplus_module_4.take(cancelers, fileName_1 + ":102:40")))), fileName_1 + ":101:47")(tsplus_module_4.size(cancelers, fileName_1 + ":101:57")), fileName_1 + ":100:47")(tsplus_module_17.make(fileName_1 + ":100:59")), fileName_1 + ":99:47")(tsplus_module_17.make(fileName_1 + ":99:59"));
53
51
  }
54
52
  })(doneOrChannel), fileName_1 + ":63:28")(pull)), fileName_1 + ":114:37"));
55
- }, fileName_1 + ":39:33")(tsplus_module_16.toPull(channels)), fileName_1 + ":38:33")(tsplus_module_23.atomically(tsplus_module_22.make(n, fileName_1 + ":38:49"), fileName_1 + ":38:52")), fileName_1 + ":37:33")(tsplus_module_18.make(fileName_1 + ":37:45")), fileName_1 + ":36:33")(tsplus_module_24.make(() => tsplus_module_19.nothing(), fileName_1 + ":36:42")), fileName_1 + ":35:33")(tsplus_module_26.acquireRelease(() => tsplus_module_25.makeUnbounded(fileName_1 + ":35:71"), queue => tsplus_module_4.shutdown(queue, fileName_1 + ":35:112"), fileName_1 + ":35:51")), fileName_1 + ":29:26")(tsplus_module_26.acquireRelease(() => tsplus_module_25.makeBounded(bufferSize, fileName_1 + ":31:32"), queue => tsplus_module_4.shutdown(queue, fileName_1 + ":32:31"), fileName_1 + ":30:30")), fileName_1 + ":28:12")(tsplus_module_27.addFinalizer(() => tsplus_module_5.flatMap(tsplus_module_6.interruptAll, fileName_1 + ":28:48")(getChildren), fileName_1 + ":28:28")), fileName_1 + ":26:22")));
53
+ }, fileName_1 + ":39:33")(tsplus_module_15.toPull(channels)), fileName_1 + ":38:33")(tsplus_module_21.makeSemaphore(n, fileName_1 + ":38:43")), fileName_1 + ":37:33")(tsplus_module_17.make(fileName_1 + ":37:45")), fileName_1 + ":36:33")(tsplus_module_22.make(() => tsplus_module_18.nothing(), fileName_1 + ":36:42")), fileName_1 + ":35:33")(tsplus_module_24.acquireRelease(() => tsplus_module_23.makeUnbounded(fileName_1 + ":35:71"), queue => tsplus_module_4.shutdown(queue, fileName_1 + ":35:112"), fileName_1 + ":35:51")), fileName_1 + ":29:26")(tsplus_module_24.acquireRelease(() => tsplus_module_23.makeBounded(bufferSize, fileName_1 + ":31:32"), queue => tsplus_module_4.shutdown(queue, fileName_1 + ":32:31"), fileName_1 + ":30:30")), fileName_1 + ":28:12")(tsplus_module_25.addFinalizer(() => tsplus_module_5.flatMap(tsplus_module_6.interruptAll, fileName_1 + ":28:48")(getChildren), fileName_1 + ":28:28")), fileName_1 + ":26:22")));
56
54
  };
57
55
  }
58
56
  //# sourceMappingURL=mergeAllWith.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"mergeAllWith.mjs","mappings":"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","names":["identity","mergeAllWith","n","f","bufferSize","mergeStrategy","channels","tsplus_module_2","tsplus_module_5","queue","consumer","out","tsplus_module_3","outElem","tsplus_module_1","tsplus_module_28","getChildren","cancelers","lastDone","errorSignal","permits","pull","evaluatePull","md1","tsplus_module_10","outDone","tsplus_module_20","md2","tsplus_module_19","m","tsplus_module_21","ea","tsplus_module_4","tsplus_module_9","cause","doneOrChannel","tsplus_module_13","tsplus_module_7","_","permitAcquisition","failureAwait","maybeDone","channel","latch","raceIOs","io","tsplus_module_15","b","tsplus_module_12","undefined","tsplus_module_18","canceler","size","tsplus_module_22","tsplus_module_24","tsplus_module_26","tsplus_module_25","tsplus_module_27"],"sourceRoot":"","sources":["../../../_src/Channel/api/mergeAllWith.ts"],"sourcesContent":[null]}
1
+ {"version":3,"file":"mergeAllWith.mjs","mappings":"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","names":["identity","mergeAllWith","n","f","bufferSize","mergeStrategy","channels","tsplus_module_2","tsplus_module_5","queue","consumer","out","tsplus_module_3","outElem","tsplus_module_1","tsplus_module_26","getChildren","cancelers","lastDone","errorSignal","permits","pull","evaluatePull","md1","tsplus_module_9","outDone","tsplus_module_19","md2","tsplus_module_18","m","tsplus_module_20","ea","tsplus_module_4","tsplus_module_8","cause","doneOrChannel","tsplus_module_12","withPermits","_","permitAcquisition","failureAwait","maybeDone","channel","latch","raceIOs","io","tsplus_module_14","b","withPermit","tsplus_module_11","undefined","tsplus_module_17","canceler","size","tsplus_module_21","tsplus_module_22","tsplus_module_24","tsplus_module_23","tsplus_module_25"],"sourceRoot":"","sources":["../../../_src/Channel/api/mergeAllWith.ts"],"sourcesContent":[null]}
@@ -0,0 +1,12 @@
1
+ import * as tsplus_module_1 from "@fncts/io/IO/api";
2
+ import * as tsplus_module_2 from "@fncts/io/FiberRef/unsafe";
3
+ import * as tsplus_module_3 from "@fncts/io/FiberRef/operations";
4
+ import { backgroundScheduler } from "@fncts/io/internal/BackgroundScheduler";
5
+ /**
6
+ * @tsplus static fncts.io.IOOps blocking
7
+ * @tsplus getter fncts.io.IO blocking
8
+ */
9
+ export function blocking(self, __tsplusTrace) {
10
+ return tsplus_module_1.zipRight(self, __tsplusTrace)(tsplus_module_3.locally(tsplus_module_2.currentScheduler, backgroundScheduler, __tsplusTrace)(tsplus_module_1.yieldNow));
11
+ }
12
+ //# sourceMappingURL=blocking.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blocking.mjs","mappings":";;;AAAA,SAASA,mBAAmB,QAAQ,wCAAwC;AAE5E;;;;AAIA,OAAM,SAAUC,QAAQ,CAAUC,IAAiB,EAAEC,aAAsB;EACzE,gCAA6ED,IAAI,EAD9BC,eAC5CC,0DAAkCJ,mBAAmB,EADTG,cACU,0BAAa;AAC5E","names":["backgroundScheduler","blocking","self","__tsplusTrace","tsplus_module_3"],"sourceRoot":"","sources":["../../../_src/IO/api/blocking.ts"],"sourcesContent":[null]}
package/_mjs/IO.mjs CHANGED
@@ -12,6 +12,7 @@ export * from "./IO/api/addFinalizer.mjs";
12
12
  export * from "./IO/api/addFinalizerExit.mjs";
13
13
  export * from "./IO/api/asyncInterrupt.mjs";
14
14
  export * from "./IO/api/asyncIO.mjs";
15
+ export * from "./IO/api/blocking.mjs";
15
16
  export * from "./IO/api/bracket.mjs";
16
17
  export * from "./IO/api/bracketExit.mjs";
17
18
  export * from "./IO/api/clockWith.mjs";
package/_mjs/IO.mjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"IO.mjs","mappings":"AAAA;AACA,cAAc,cAAa;AAC3B,cAAc,qBAAoB;AAClC,cAAc,kBAAiB;AAC/B;AAEA;AACA,cAAc,6BAA4B;AAC1C,cAAc,iCAAgC;AAC9C,cAAc,0CAAyC;AACvD,cAAc,8CAA6C;AAC3D,cAAc,2BAA0B;AACxC,cAAc,+BAA8B;AAC5C,cAAc,6BAA4B;AAC1C,cAAc,sBAAqB;AACnC,cAAc,sBAAqB;AACnC,cAAc,0BAAyB;AACvC,cAAc,wBAAuB;AACrC,cAAc,0BAAyB;AACvC,cAAc,mCAAkC;AAChD,cAAc,0BAAyB;AACvC,cAAc,6BAA4B;AAC1C,cAAc,oBAAmB;AACjC,cAAc,yBAAwB;AACtC,cAAc,yBAAwB;AACtC,cAAc,+BAA8B;AAC5C,cAAc,0BAAyB;AACvC,cAAc,gCAA+B;AAC7C,cAAc,0BAAyB;AACvC,cAAc,mBAAkB;AAChC,cAAc,sBAAqB;AACnC,cAAc,yBAAwB;AACtC,cAAc,qBAAoB;AAClC,cAAc,yBAAwB;AACtC,cAAc,sBAAqB;AACnC,cAAc,wBAAuB;AACrC,cAAc,sBAAqB;AACnC,cAAc,mBAAkB;AAChC,cAAc,4BAA2B;AACzC,cAAc,2BAA0B;AACxC,cAAc,2BAA0B;AACxC,cAAc,+BAA8B;AAC5C,cAAc,mBAAkB;AAChC,cAAc,wBAAuB;AACrC,cAAc,uBAAsB;AACpC,cAAc,yBAAwB;AACtC,cAAc,qBAAoB;AAClC,cAAc,oBAAmB;AACjC,cAAc,uBAAsB;AACpC,cAAc,oBAAmB;AACjC,cAAc,qBAAoB;AAClC,cAAc,wBAAuB;AACrC,cAAc,wBAAuB;AACrC,cAAc,oBAAmB;AACjC,cAAc,uBAAsB;AACpC,cAAc,yBAAwB;AACtC,cAAc,sBAAqB;AACnC,cAAc,yBAAwB;AACtC,cAAc,2BAA0B;AACxC,cAAc,sBAAqB;AACnC,cAAc,2BAA0B;AACxC,cAAc,+BAA8B;AAC5C,cAAc,4BAA2B;AACzC,cAAc,gCAA+B;AAC7C,cAAc,4BAA2B","names":[],"sourceRoot":"","sources":["../_src/IO.ts"],"sourcesContent":[null]}
1
+ {"version":3,"file":"IO.mjs","mappings":"AAAA;AACA,cAAc,cAAa;AAC3B,cAAc,qBAAoB;AAClC,cAAc,kBAAiB;AAC/B;AAEA;AACA,cAAc,6BAA4B;AAC1C,cAAc,iCAAgC;AAC9C,cAAc,0CAAyC;AACvD,cAAc,8CAA6C;AAC3D,cAAc,2BAA0B;AACxC,cAAc,+BAA8B;AAC5C,cAAc,6BAA4B;AAC1C,cAAc,sBAAqB;AACnC,cAAc,uBAAsB;AACpC,cAAc,sBAAqB;AACnC,cAAc,0BAAyB;AACvC,cAAc,wBAAuB;AACrC,cAAc,0BAAyB;AACvC,cAAc,mCAAkC;AAChD,cAAc,0BAAyB;AACvC,cAAc,6BAA4B;AAC1C,cAAc,oBAAmB;AACjC,cAAc,yBAAwB;AACtC,cAAc,yBAAwB;AACtC,cAAc,+BAA8B;AAC5C,cAAc,0BAAyB;AACvC,cAAc,gCAA+B;AAC7C,cAAc,0BAAyB;AACvC,cAAc,mBAAkB;AAChC,cAAc,sBAAqB;AACnC,cAAc,yBAAwB;AACtC,cAAc,qBAAoB;AAClC,cAAc,yBAAwB;AACtC,cAAc,sBAAqB;AACnC,cAAc,wBAAuB;AACrC,cAAc,sBAAqB;AACnC,cAAc,mBAAkB;AAChC,cAAc,4BAA2B;AACzC,cAAc,2BAA0B;AACxC,cAAc,2BAA0B;AACxC,cAAc,+BAA8B;AAC5C,cAAc,mBAAkB;AAChC,cAAc,wBAAuB;AACrC,cAAc,uBAAsB;AACpC,cAAc,yBAAwB;AACtC,cAAc,qBAAoB;AAClC,cAAc,oBAAmB;AACjC,cAAc,uBAAsB;AACpC,cAAc,oBAAmB;AACjC,cAAc,qBAAoB;AAClC,cAAc,wBAAuB;AACrC,cAAc,wBAAuB;AACrC,cAAc,oBAAmB;AACjC,cAAc,uBAAsB;AACpC,cAAc,yBAAwB;AACtC,cAAc,sBAAqB;AACnC,cAAc,yBAAwB;AACtC,cAAc,2BAA0B;AACxC,cAAc,sBAAqB;AACnC,cAAc,2BAA0B;AACxC,cAAc,+BAA8B;AAC5C,cAAc,4BAA2B;AACzC,cAAc,gCAA+B;AAC7C,cAAc,4BAA2B","names":[],"sourceRoot":"","sources":["../_src/IO.ts"],"sourcesContent":[null]}
@@ -1,22 +1,21 @@
1
1
  import * as tsplus_module_1 from "@fncts/io/Ref/constructors";
2
- import * as tsplus_module_2 from "@fncts/io/TSemaphore/constructors";
2
+ import * as tsplus_module_2 from "@fncts/io/Semaphore";
3
3
  import * as tsplus_module_3 from "@fncts/io/Ref/api/get";
4
4
  import * as tsplus_module_4 from "@fncts/io/Ref/api/set";
5
- import * as tsplus_module_5 from "@fncts/io/STM/api/atomically";
6
- import * as tsplus_module_6 from "@fncts/io/IO/api";
5
+ import * as tsplus_module_5 from "@fncts/io/IO/api";
7
6
  import { PSynchronizedInternal } from "./definition.mjs";
8
7
  /**
9
8
  * @tsplus static fncts.io.Ref.SynchronizedOps unsafeMake
10
9
  */
11
10
  export function unsafeMakeSynchronized(a, __tsplusTrace) {
12
11
  const ref = tsplus_module_1.unsafeMake(a, __tsplusTrace);
13
- const semaphore = tsplus_module_2.unsafeMake(1);
12
+ const semaphore = tsplus_module_2.unsafeMakeSemaphore(1);
14
13
  return new PSynchronizedInternal(semaphore, ref.get, a => ref.set(a));
15
14
  }
16
15
  /**
17
16
  * @tsplus static fncts.io.Ref.SynchronizedOps make
18
17
  */
19
18
  export function makeSynchronized(a, __tsplusTrace) {
20
- return tsplus_module_6.flatMap(ref => tsplus_module_6.map(semaphore => new PSynchronizedInternal(semaphore, tsplus_module_3.get(ref, __tsplusTrace), a => tsplus_module_4.set(a, __tsplusTrace)(ref)), __tsplusTrace)(tsplus_module_5.atomically(tsplus_module_2.make(1, __tsplusTrace), __tsplusTrace)), __tsplusTrace)(tsplus_module_1.make(a, __tsplusTrace));
19
+ return tsplus_module_5.flatMap(ref => tsplus_module_5.map(semaphore => new PSynchronizedInternal(semaphore, tsplus_module_3.get(ref, __tsplusTrace), a => tsplus_module_4.set(a, __tsplusTrace)(ref)), __tsplusTrace)(tsplus_module_2.makeSemaphore(1, __tsplusTrace)), __tsplusTrace)(tsplus_module_1.make(a, __tsplusTrace));
21
20
  }
22
21
  //# sourceMappingURL=constructors.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"constructors.mjs","mappings":";;;;;;AAAA,SAASA,qBAAqB,QAAQ,kBAAiB;AAEvD;;;AAGA,OAAM,SAAUC,sBAAsB,CAAIC,CAAI,EAAEC,aAAsB;EACpE,MAAMC,GAAG,GAASC,2BAAeH,CAAC,EADYC,cACX;EACnC,MAAMG,SAAS,GAAGC,2BAAsB,CAAC,CAAC;EAC1C,OAAO,IAAIP,qBAAqB,CAACM,SAAS,EAAEF,GAAG,CAACI,GAAG,EAAGN,CAAI,IAAKE,GAAG,CAACK,GAAG,CAACP,CAAC,CAAC,CAAC;AAC5E;AAEA;;;AAGA,OAAM,SAAUQ,gBAAgB,CAAIR,CAAU,EAAEC,aAAsB;EACpE,+BACQC,GAAG,wBACHE,SAAS,IACR,IAAIN,qBAAqB,CAACM,SAAS,sBAAEF,GAAG,EAJHD,gBAIUD,CAAI,IAAKS,oBAAQT,CAAC,EAJ5BC,eAImBC,GAAG,CAAO,CAAC,EAJ9BD,0CAGxBI,qBAAgB,CAAC,EAHOJ,cAGN,EAHMA,gCAExBE,qBAASH,CAAC,EAFcC,cAEb;AAInC","names":["PSynchronizedInternal","unsafeMakeSynchronized","a","__tsplusTrace","ref","tsplus_module_1","semaphore","tsplus_module_2","get","set","makeSynchronized","tsplus_module_4"],"sourceRoot":"","sources":["../../../_src/Ref/Synchronized/constructors.ts"],"sourcesContent":[null]}
1
+ {"version":3,"file":"constructors.mjs","mappings":";;;;;AAAA,SAASA,qBAAqB,QAAQ,kBAAiB;AAEvD;;;AAGA,OAAM,SAAUC,sBAAsB,CAAIC,CAAI,EAAEC,aAAsB;EACpE,MAAMC,GAAG,GAASC,2BAAeH,CAAC,EADYC,cACX;EACnC,MAAMG,SAAS,GAAGC,oCAAqB,CAAC,CAAC;EACzC,OAAO,IAAIP,qBAAqB,CAACM,SAAS,EAAEF,GAAG,CAACI,GAAG,EAAGN,CAAI,IAAKE,GAAG,CAACK,GAAG,CAACP,CAAC,CAAC,CAAC;AAC5E;AAEA;;;AAGA,OAAM,SAAUQ,gBAAgB,CAAIR,CAAU,EAAEC,aAAsB;EACpE,+BACQC,GAAG,wBACHE,SAAS,IACR,IAAIN,qBAAqB,CAACM,SAAS,sBAAEF,GAAG,EAJHD,gBAIUD,CAAI,IAAKS,oBAAQT,CAAC,EAJ5BC,eAImBC,GAAG,CAAO,CAAC,EAJ9BD,eAGxBI,8BAAU,CAAC,EAHaJ,cAGZ,GAHYA,eAExBE,qBAASH,CAAC,EAFcC,cAEb;AAInC","names":["PSynchronizedInternal","unsafeMakeSynchronized","a","__tsplusTrace","ref","tsplus_module_1","semaphore","tsplus_module_2","get","set","makeSynchronized","tsplus_module_4"],"sourceRoot":"","sources":["../../../_src/Ref/Synchronized/constructors.ts"],"sourcesContent":[null]}
@@ -1,7 +1,6 @@
1
1
  var _a;
2
2
  const fileName_1 = "(@fncts/io) src/Ref/Synchronized/definition.ts";
3
3
  import * as tsplus_module_1 from "@fncts/io/IO/api";
4
- import * as tsplus_module_2 from "@fncts/io/TSemaphore/api";
5
4
  import { RefInternal } from "../definition.mjs";
6
5
  export const SynchronizedTypeId = /*#__PURE__*/Symbol.for("fncts.io.Ref.Synchronized");
7
6
  /**
@@ -44,7 +43,7 @@ export class PSynchronizedInternal extends RefInternal {
44
43
  return this.matchAllIO(ea, eb, ec, c => b => tsplus_module_1.fromEitherNow(ca(c)(b), fileName_1 + ":119:37"), b => tsplus_module_1.fromEitherNow(bd(b), fileName_1 + ":120:30"), fileName_1 + ":115:27");
45
44
  }
46
45
  withPermit(io, __tsplusTrace) {
47
- return tsplus_module_2.withPermit(this.semaphore, fileName_1 + ":125:26")(io);
46
+ return this.semaphore.withPermit(io);
48
47
  }
49
48
  }
50
49
  _a = SynchronizedTypeId;
@@ -1 +1 @@
1
- {"version":3,"file":"definition.mjs","mappings":"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","names":["RefInternal","SynchronizedTypeId","Symbol","for","Synchronized","PSynchronizedInternal","constructor","semaphore","unsafeGet","unsafeSet","get","withPermit","set","a","__tsplusTrace","modify","f","modifyIO","tsplus_module_1","b","matchAllIO","ea","eb","ec","ca","bd","e","c","matchIO","match","matchAll","io","tsplus_module_2","concreteSynchronized","self"],"sourceRoot":"","sources":["../../../_src/Ref/Synchronized/definition.ts"],"sourcesContent":[null]}
1
+ {"version":3,"file":"definition.mjs","mappings":"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","names":["RefInternal","SynchronizedTypeId","Symbol","for","Synchronized","PSynchronizedInternal","constructor","semaphore","unsafeGet","unsafeSet","get","withPermit","set","a","__tsplusTrace","modify","f","modifyIO","tsplus_module_1","b","matchAllIO","ea","eb","ec","ca","bd","e","c","matchIO","match","matchAll","io","concreteSynchronized","self"],"sourceRoot":"","sources":["../../../_src/Ref/Synchronized/definition.ts"],"sourcesContent":[null]}
@@ -0,0 +1,78 @@
1
+ const fileName_1 = "(@fncts/io) src/Semaphore.ts";
2
+ import * as tsplus_module_1 from "@fncts/io/IO/api";
3
+ import * as tsplus_module_2 from "@fncts/base/data/Either/constructors";
4
+ import * as tsplus_module_3 from "@fncts/io/IO/api/asyncInterrupt";
5
+ import * as tsplus_module_4 from "@fncts/io/FiberRef/unsafe";
6
+ import * as tsplus_module_5 from "@fncts/io/IO/api/interrupt";
7
+ export const unsafeMakeSemaphore = unsafeMakeSemaphore_1;
8
+ /**
9
+ * @tsplus type fncts.io.Semaphore
10
+ * @tsplus companion fncts.io.SemaphoreOps
11
+ */
12
+ export class Semaphore {
13
+ constructor(permits) {
14
+ this.permits = permits;
15
+ this.taken = 0;
16
+ this.waiters = new Set();
17
+ }
18
+ get free() {
19
+ return this.permits - this.taken;
20
+ }
21
+ runNext() {
22
+ const next = this.waiters.values().next();
23
+ if (!next.done) {
24
+ this.waiters.delete(next.value);
25
+ next.value();
26
+ }
27
+ }
28
+ take(n) {
29
+ return tsplus_module_3.asyncInterrupt(cb => {
30
+ if (this.free < n) {
31
+ const observer = () => {
32
+ if (this.free >= n) {
33
+ this.waiters.delete(observer);
34
+ this.taken += n;
35
+ cb(tsplus_module_1.succeedNow(n, fileName_1 + ":30:29"));
36
+ }
37
+ };
38
+ this.waiters.add(observer);
39
+ return tsplus_module_2.left(tsplus_module_1.succeed(() => {
40
+ this.waiters.delete(observer);
41
+ }, fileName_1 + ":35:13"));
42
+ }
43
+ this.taken += n;
44
+ return tsplus_module_2.right(tsplus_module_1.succeedNow(n, fileName_1 + ":41:40"));
45
+ });
46
+ }
47
+ release(n) {
48
+ return tsplus_module_1.withFiberRuntime(fiber => {
49
+ this.taken -= n;
50
+ fiber.getFiberRef(tsplus_module_4.currentScheduler).scheduleTask(() => {
51
+ this.waiters.forEach(wake => wake());
52
+ });
53
+ return tsplus_module_1.unit;
54
+ }, fileName_1 + ":46:31");
55
+ }
56
+ withPermits(permits) {
57
+ return io => {
58
+ return tsplus_module_5.uninterruptibleMask(restore => tsplus_module_1.flatMap(permits => tsplus_module_5.ensuring(this.release(permits), fileName_1 + ":58:78")(restore(io, fileName_1 + ":58:65")), fileName_1 + ":58:44")(restore(this.take(permits), fileName_1 + ":58:16")));
59
+ };
60
+ }
61
+ withPermit(io) {
62
+ return this.withPermits(1)(io);
63
+ }
64
+ }
65
+ /**
66
+ * @tsplus static fncts.io.SemaphoreOps unsafeMake
67
+ */
68
+ function unsafeMakeSemaphore_1(permits) {
69
+ return new Semaphore(permits);
70
+ }
71
+ /**
72
+ * @tsplus static fncts.io.SemaphoreOps make
73
+ * @tsplus static fncts.io.SemaphoreOps __call
74
+ */
75
+ export function makeSemaphore(permits, __tsplusTrace) {
76
+ return tsplus_module_1.succeed(() => unsafeMakeSemaphore_1(permits), __tsplusTrace);
77
+ }
78
+ //# sourceMappingURL=Semaphore.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Semaphore.mjs","mappings":";;;;;;aAsEgBA,mBAAmB;AAtEnC;;;;AAIA,OAAM,MAAOC,SAAS;EACpBC,YAAqBC,OAAe;IAAf,YAAO,GAAPA,OAAO;IAE5B,UAAK,GAAK,CAAC;IACX,YAAO,GAAG,IAAIC,GAAG,EAAc;EAHQ;EAKvC,IAAIC,IAAI;IACN,OAAO,IAAI,CAACF,OAAO,GAAG,IAAI,CAACG,KAAK;EAClC;EAEAC,OAAO;IACL,MAAMC,IAAI,GAAG,IAAI,CAACC,OAAO,CAACC,MAAM,EAAE,CAACF,IAAI,EAAE;IACzC,IAAI,CAACA,IAAI,CAACG,IAAI,EAAE;MACd,IAAI,CAACF,OAAO,CAACG,MAAM,CAACJ,IAAI,CAACK,KAAK,CAAC;MAC/BL,IAAI,CAACK,KAAK,EAAE;;EAEhB;EAEAC,IAAI,CAACC,CAAS;IACZ,OAAOC,+BAAyCC,EAAE,IAAI;MACpD,IAAI,IAAI,CAACZ,IAAI,GAAGU,CAAC,EAAE;QACjB,MAAMG,QAAQ,GAAG,MAAK;UACpB,IAAI,IAAI,CAACb,IAAI,IAAIU,CAAC,EAAE;YAClB,IAAI,CAACN,OAAO,CAACG,MAAM,CAACM,QAAQ,CAAC;YAC7B,IAAI,CAACZ,KAAK,IAAIS,CAAC;YACfE,EAAE,CAACE,2BAAcJ,CAAC,wBAAC,CAAC;;QAExB,CAAC;QACD,IAAI,CAACN,OAAO,CAACW,GAAG,CAACF,QAAQ,CAAC;QAC1B,OAAOG,qBACLF,wBAAG,MAAK;UACN,IAAI,CAACV,OAAO,CAACG,MAAM,CAACM,QAAQ,CAAC;QAC/B,CAAC,wBAAC,CACH;;MAEH,IAAI,CAACZ,KAAK,IAAIS,CAAC;MACf,OAAOM,sBAAaF,2BAAcJ,CAAC,wBAAC,CAAC;IACvC,CAAC,CAAC;EACJ;EAEAO,OAAO,CAACP,CAAS;IACf,OAAOI,iCAAyCI,KAAK,IAAI;MACvD,IAAI,CAACjB,KAAK,IAAIS,CAAC;MACfQ,KAAK,CAACC,WAAW,kCAA2B,CAACC,YAAY,CAAC,MAAK;QAC7D,IAAI,CAAChB,OAAO,CAACiB,OAAO,CAAEC,IAAI,IAAKA,IAAI,EAAE,CAAC;MACxC,CAAC,CAAC;MACF;IACF,CAAC,wBAAC;EACJ;EAEAC,WAAW,CAACzB,OAAe;IACzB,OAAiB0B,EAAe,IAAiB;MAC/C,OAAOC,oCAAwBC,OAAO,IACpCZ,wBAAqChB,OAAO,IAAK2B,yBAAqB,IAAI,CAACR,OAAO,CAACnB,OAAO,CAAC,yBAA1C4B,OAAO,CAACF,EAAE,wBAAC,CAAgC,yBAA5FE,OAAO,CAAC,IAAI,CAACjB,IAAI,CAACX,OAAO,CAAC,wBAAC,CAAkE,CAC9F;IACH,CAAC;EACH;EAEA6B,UAAU,CAAUH,EAAe;IACjC,OAAO,IAAI,CAACD,WAAW,CAAC,CAAC,CAAC,CAACC,EAAE,CAAC;EAChC;;AAGF;;;AAGA,+BAAoC1B,OAAe;EACjD,OAAO,IAAIF,SAAS,CAACE,OAAO,CAAC;AAC/B;AAEA;;;;AAIA,OAAM,SAAU8B,aAAa,CAAC9B,OAAe,EAAE+B,aAAsB;EACnE,OAAOf,8BAAGgB,sBAAqBhC,OAAO,CAAC,EADM+B,cACL;AAC1C","names":["unsafeMakeSemaphore","Semaphore","constructor","permits","Set","free","taken","runNext","next","waiters","values","done","delete","value","take","n","tsplus_module_3","cb","observer","tsplus_module_1","add","tsplus_module_2","release","fiber","getFiberRef","scheduleTask","forEach","wake","withPermits","io","tsplus_module_5","restore","withPermit","makeSemaphore","__tsplusTrace","unsafeMakeSemaphore_1"],"sourceRoot":"","sources":["../_src/Semaphore.ts"],"sourcesContent":[null]}