Package: effect
Module: Fiber
Interrupts a fiber, causing it to stop executing and clean up any acquired resources.
When to use
Use when you need to cancel a forked fiber and wait for its cleanup to complete.
Details
The returned Effect completes only after the interrupted fiber has completed.
Gotchas
Interruption is cooperative. A fiber can continue running while it is inside uninterruptible work or finalizers.
Example (Interrupting a fiber)
import { Effect, Fiber } from "effect"
const program = Effect.gen(function*() {
const fiber = yield* Effect.forkChild(
Effect.delay("1 second")(Effect.succeed(42))
)
yield* Fiber.interrupt(fiber)
console.log("Fiber interrupted")
})
See
interruptAs for specifying the interrupting fiber IDawait for observing the interrupted fiber’s ExitSignature
declare const interrupt: <A, E>(self: Fiber<A, E>) => Effect<void>
Since v2.0.0