MCPcopy
hub / github.com/Effect-TS/effect / sendInterrupt

Function sendInterrupt

packages/rpc/src/RpcClient.ts:519–542  ·  view source on GitHub ↗
(
    requestId: RequestId,
    interruptors: ReadonlyArray<FiberId.FiberId>,
    context: Context.Context<never>
  )

Source from the content-addressed store, hash-verified

517 }
518
519 const sendInterrupt = (
520 requestId: RequestId,
521 interruptors: ReadonlyArray<FiberId.FiberId>,
522 context: Context.Context<never>
523 ): Effect.Effect<void> =>
524 Effect.async<void>((resume) => {
525 const parentFiber = Option.getOrThrow(Fiber.getCurrentFiber())
526 const runtime = Runtime.make({
527 context: parentFiber.currentContext,
528 fiberRefs: parentFiber.getFiberRefs(),
529 runtimeFlags: Runtime.defaultRuntime.runtimeFlags
530 })
531 const fiber = options.onFromClient({
532 message: { _tag: "Interrupt", requestId, interruptors },
533 context,
534 discard: false
535 }).pipe(
536 Effect.timeout(1000),
537 Runtime.runFork(runtime)
538 )
539 fiber.addObserver(() => {
540 resume(Effect.void)
541 })
542 })
543
544 const write = (message: FromServer<Rpcs>): Effect.Effect<void> => {
545 switch (message._tag) {

Callers 2

onEffectRequestFunction · 0.85
RpcClient.tsFile · 0.85

Calls 6

onFromClientMethod · 0.80
resumeFunction · 0.70
makeMethod · 0.65
getFiberRefsMethod · 0.65
pipeMethod · 0.65
addObserverMethod · 0.65

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…