(fibers: Iterable<Fiber.Fiber<A, E>>)
| 3436 | |
| 3437 | /** @internal */ |
| 3438 | export const fiberAll = <A, E>(fibers: Iterable<Fiber.Fiber<A, E>>): Fiber.Fiber<Array<A>, E> => { |
| 3439 | const _fiberAll = { |
| 3440 | ...Effectable.CommitPrototype, |
| 3441 | commit() { |
| 3442 | return internalFiber.join(this) |
| 3443 | }, |
| 3444 | [internalFiber.FiberTypeId]: internalFiber.fiberVariance, |
| 3445 | id: () => |
| 3446 | RA.fromIterable(fibers).reduce((id, fiber) => FiberId.combine(id, fiber.id()), FiberId.none as FiberId.FiberId), |
| 3447 | await: core.exit(forEachParUnbounded(fibers, (fiber) => core.flatten(fiber.await), false)), |
| 3448 | children: core.map(forEachParUnbounded(fibers, (fiber) => fiber.children, false), RA.flatten), |
| 3449 | inheritAll: core.forEachSequentialDiscard(fibers, (fiber) => fiber.inheritAll), |
| 3450 | poll: core.map( |
| 3451 | core.forEachSequential(fibers, (fiber) => fiber.poll), |
| 3452 | RA.reduceRight( |
| 3453 | Option.some<Exit.Exit<Array<A>, E>>(core.exitSucceed(new Array())), |
| 3454 | (optionB, optionA) => { |
| 3455 | switch (optionA._tag) { |
| 3456 | case "None": { |
| 3457 | return Option.none() |
| 3458 | } |
| 3459 | case "Some": { |
| 3460 | switch (optionB._tag) { |
| 3461 | case "None": { |
| 3462 | return Option.none() |
| 3463 | } |
| 3464 | case "Some": { |
| 3465 | return Option.some( |
| 3466 | core.exitZipWith(optionA.value, optionB.value, { |
| 3467 | onSuccess: (a, chunk) => [a, ...chunk], |
| 3468 | onFailure: internalCause.parallel |
| 3469 | }) |
| 3470 | ) |
| 3471 | } |
| 3472 | } |
| 3473 | } |
| 3474 | } |
| 3475 | } |
| 3476 | ) |
| 3477 | ), |
| 3478 | interruptAsFork: (fiberId: FiberId.FiberId) => |
| 3479 | core.forEachSequentialDiscard(fibers, (fiber) => fiber.interruptAsFork(fiberId)) |
| 3480 | } |
| 3481 | return _fiberAll |
| 3482 | } |
| 3483 | |
| 3484 | /* @internal */ |
| 3485 | export const fiberInterruptFork = <A, E>(self: Fiber.Fiber<A, E>): Effect.Effect<void> => |
no test coverage detected