(
side: "left" | "right",
channel: Channel<
OutElem | OutElem1,
OutErr | OutErr1,
OutDone | OutDone1,
InElem & InElem1,
InErr & InErr1,
InDone & InDone1,
Env | Env1
>,
scope: Scope.Closeable
)
| 6231 | Effect.forkChild |
| 6232 | ) |
| 6233 | |
| 6234 | doneLatch.closeUnsafe() |
| 6235 | fibers.add(fiber) |
| 6236 | } |
| 6237 | }).pipe( |
| 6238 | Effect.catchCause((cause) => { |
| 6239 | const halt = Pull.filterDone(cause) |
| 6240 | if (Result.isSuccess(halt)) { |
| 6241 | return doneLatch.whenOpen(Queue.failCause(queue, cause)) |
| 6242 | } |
| 6243 | return Queue.failCause(queue, cause) |
| 6244 | }), |
| 6245 | Effect.forkIn(forkedScope) |
| 6246 | ) |
| 6247 | |
| 6248 | return Queue.take(queue) |
| 6249 | }) |
| 6250 | ) |
| 6251 | ) |
| 6252 | |
| 6253 | /** |
| 6254 | * Represents strategies for halting merged channels when one completes or fails. |
| 6255 | * |
| 6256 | * **Example** (Choosing merge halt strategies) |
| 6257 | * |
| 6258 | * ```ts import.meta.vitest |
| 6259 | * import { Channel } from "effect" |
| 6260 | * |
| 6261 | * // Different halt strategies for channel merging |
| 6262 | * const strategies: Array<Channel.HaltStrategy> = ["left", "right", "both", "either"] // => ["left", "right", "both", "either"] |
| 6263 | * ``` |
no test coverage detected
searching dependent graphs…