(fibers: A)
| 634 | * @category MicroFiber |
| 635 | */ |
| 636 | export const fiberInterruptAll = <A extends Iterable<MicroFiber<any, any>>>(fibers: A): Micro<void> => |
| 637 | suspend(() => { |
| 638 | for (const fiber of fibers) fiber.unsafeInterrupt() |
| 639 | const iter = fibers[Symbol.iterator]() |
| 640 | const wait: Micro<void> = suspend(() => { |
| 641 | let result = iter.next() |
| 642 | while (!result.done) { |
| 643 | if (result.value.unsafePoll()) { |
| 644 | result = iter.next() |
| 645 | continue |
| 646 | } |
| 647 | const fiber = result.value |
| 648 | return async((resume) => { |
| 649 | fiber.addObserver((_) => { |
| 650 | resume(wait) |
| 651 | }) |
| 652 | }) |
| 653 | } |
| 654 | return exitVoid |
| 655 | }) |
| 656 | return wait |
| 657 | }) |
| 658 | |
| 659 | const identifier = Symbol.for("effect/Micro/identifier") |
| 660 | type identifier = typeof identifier |
no test coverage detected
searching dependent graphs…