MCPcopy Index your code
hub / github.com/Effect-TS/effect / run

Function run

packages/effect/src/internal/channel/channelExecutor.ts:1108–1133  ·  view source on GitHub ↗
(
    channelDeferred: Deferred.Deferred<OutDone, OutErr>,
    scopeDeferred: Deferred.Deferred<void>,
    scope: Scope.Scope
  )

Source from the content-addressed store, hash-verified

1106 scope: Scope.Scope
1107) => {
1108 const run = (
1109 channelDeferred: Deferred.Deferred<OutDone, OutErr>,
1110 scopeDeferred: Deferred.Deferred<void>,
1111 scope: Scope.Scope
1112 ) =>
1113 Effect.acquireUseRelease(
1114 Effect.sync(() => new ChannelExecutor(self, void 0, identity)),
1115 (exec) =>
1116 Effect.suspend(() =>
1117 runScopedInterpret(exec.run() as ChannelState.ChannelState<OutErr, Env>, exec).pipe(
1118 Effect.intoDeferred(channelDeferred),
1119 Effect.zipRight(Deferred.await(channelDeferred)),
1120 Effect.zipLeft(Deferred.await(scopeDeferred))
1121 )
1122 ),
1123 (exec, exit) => {
1124 const finalize = exec.close(exit)
1125 if (finalize === undefined) {
1126 return Effect.void
1127 }
1128 return Effect.tapErrorCause(
1129 finalize,
1130 (cause) => Scope.addFinalizer(scope, Effect.failCause(cause))
1131 )
1132 }
1133 )
1134 return Effect.uninterruptibleMask((restore) =>
1135 Effect.all([
1136 Scope.fork(scope, ExecutionStrategy.sequential),

Callers 1

channelExecutor.tsFile · 0.70

Calls 7

syncMethod · 0.80
failCauseMethod · 0.80
pipeMethod · 0.65
closeMethod · 0.65
addFinalizerMethod · 0.65
runMethod · 0.45
awaitMethod · 0.45

Tested by

no test coverage detected