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

Function make

packages/effect/src/FiberHandle.ts:110–125  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

108 * @categories constructors
109 */
110export const make = <A = unknown, E = unknown>(): Effect.Effect<FiberHandle<A, E>, never, Scope.Scope> =>
111 Effect.acquireRelease(
112 Effect.map(Deferred.make<void, E>(), (deferred) => unsafeMake<A, E>(deferred)),
113 (handle) =>
114 Effect.withFiberRuntime((parent) => {
115 const state = handle.state
116 if (state._tag === "Closed") return Effect.void
117 handle.state = { _tag: "Closed" }
118 return state.fiber ?
119 Effect.intoDeferred(
120 Effect.asVoid(Fiber.interruptAs(state.fiber, FiberId.combine(parent.id(), internalFiberId))),
121 handle.deferred
122 ) :
123 Deferred.done(handle.deferred, Exit.void)
124 })
125 )
126
127/**
128 * Create an Effect run function that is backed by a FiberHandle.

Callers 2

makeRuntimeFunction · 0.70
makeRuntimePromiseFunction · 0.70

Calls 6

unsafeMakeFunction · 0.70
mapMethod · 0.65
makeMethod · 0.65
combineMethod · 0.65
idMethod · 0.65
doneMethod · 0.65

Tested by

no test coverage detected