MCPcopy Create free account
hub / github.com/Effect-TS/effect / make

Function make

packages/effect/src/FiberSet.ts:154–167  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

152 * @since 2.0.0
153 */
154export const make = <A = unknown, E = unknown>(): Effect.Effect<FiberSet<A, E>, never, Scope.Scope> =>
155 Effect.acquireRelease(
156 Effect.sync(() => makeUnsafe(new Set(), Deferred.makeUnsafe())),
157 (set) =>
158 Effect.suspend(() => {
159 const state = set.state
160 if (state._tag === "Closed") return Effect.void
161 set.state = { _tag: "Closed" }
162 const fibers = state.backing
163 return Fiber.interruptAll(fibers).pipe(
164 Deferred.into(set.deferred)
165 )
166 })
167 )
168
169/**
170 * Creates a scoped run function that forks effects into a new `FiberSet`.

Callers 2

makeRuntimeFunction · 0.70
makeRuntimePromiseFunction · 0.70

Calls 3

makeUnsafeFunction · 0.70
pipeMethod · 0.65
syncMethod · 0.45

Tested by

no test coverage detected