MCPcopy Create free account
hub / github.com/UsefulSoftwareCo/executor / awaitCompletionOrPause

Function awaitCompletionOrPause

packages/core/execution/src/engine.ts:593–604  ·  view source on GitHub ↗
(
    fiber: Fiber.Fiber<ExecuteResult, E>,
    pauseQueue: Queue.Queue<InternalPausedExecution<E>>,
  )

Source from the content-addressed store, hash-verified

591 * settles on whichever side completes first, success or failure.
592 */
593 const awaitCompletionOrPause = (
594 fiber: Fiber.Fiber<ExecuteResult, E>,
595 pauseQueue: Queue.Queue<InternalPausedExecution<E>>,
596 ): Effect.Effect<ExecutionResult, E> =>
597 Effect.raceFirst(
598 Fiber.join(fiber).pipe(
599 Effect.map((result): ExecutionResult => ({ status: "completed", result })),
600 ),
601 Queue.take(pauseQueue).pipe(
602 Effect.map((paused): ExecutionResult => ({ status: "paused", execution: paused })),
603 ),
604 );
605
606 /**
607 * Start an execution in pause/resume mode.

Callers 1

createExecutionEngineFunction · 0.85

Calls 1

takeMethod · 0.80

Tested by

no test coverage detected