(
fiber: Fiber.Fiber<ExecuteResult, E>,
pauseQueue: Queue.Queue<InternalPausedExecution<E>>,
)
| 612 | * settles on whichever side completes first, success or failure. |
| 613 | */ |
| 614 | const awaitCompletionOrPause = ( |
| 615 | fiber: Fiber.Fiber<ExecuteResult, E>, |
| 616 | pauseQueue: Queue.Queue<InternalPausedExecution<E>>, |
| 617 | ): Effect.Effect<ExecutionResult, E> => |
| 618 | Effect.raceFirst( |
| 619 | Fiber.join(fiber).pipe( |
| 620 | Effect.map( |
| 621 | (result): ExecutionResult => ({ |
| 622 | status: "completed", |
| 623 | result, |
| 624 | }), |
| 625 | ), |
| 626 | ), |
| 627 | Queue.take(pauseQueue).pipe( |
| 628 | Effect.map( |
| 629 | (paused): ExecutionResult => ({ |
| 630 | status: "paused", |
| 631 | execution: paused, |
| 632 | }), |
| 633 | ), |
| 634 | ), |
| 635 | ); |
| 636 | |
| 637 | /** |
| 638 | * Start an execution in pause/resume mode. |
no test coverage detected