| Linux premium331.web-hosting.com 4.18.0-553.80.1.lve.el8.x86_64 #1 SMP Wed Oct 22 19:29:36 UTC 2025 x86_64 Path : /home/livedhms/nodevenv/lmgt/22/lib/node_modules/effect/src/internal/ |
| Current File : /home/livedhms/nodevenv/lmgt/22/lib/node_modules/effect/src/internal/concurrency.ts |
import type { Effect } from "../Effect.js"
import type { Concurrency } from "../Types.js"
import * as core from "./core.js"
/** @internal */
export const match = <A, E, R>(
concurrency: Concurrency | undefined,
sequential: () => Effect<A, E, R>,
unbounded: () => Effect<A, E, R>,
bounded: (limit: number) => Effect<A, E, R>
): Effect<A, E, R> => {
switch (concurrency) {
case undefined:
return sequential()
case "unbounded":
return unbounded()
case "inherit":
return core.fiberRefGetWith(
core.currentConcurrency,
(concurrency) =>
concurrency === "unbounded" ?
unbounded() :
concurrency > 1 ?
bounded(concurrency) :
sequential()
)
default:
return concurrency > 1 ? bounded(concurrency) : sequential()
}
}
/** @internal */
export const matchSimple = <A, E, R>(
concurrency: Concurrency | undefined,
sequential: () => Effect<A, E, R>,
concurrent: () => Effect<A, E, R>
): Effect<A, E, R> => {
switch (concurrency) {
case undefined:
return sequential()
case "unbounded":
return concurrent()
case "inherit":
return core.fiberRefGetWith(
core.currentConcurrency,
(concurrency) =>
concurrency === "unbounded" || concurrency > 1 ?
concurrent() :
sequential()
)
default:
return concurrency > 1 ? concurrent() : sequential()
}
}