Hyperlinkv0.8.0-beta.28

Effect

Effect.forkInconsteffect/Effect.ts:8591
(
  scope: Scope,
  options?: {
    readonly startImmediately?: boolean | undefined
    readonly uninterruptible?: boolean | "inherit" | undefined
  }
): <A, E, R>(self: Effect<A, E, R>) => Effect<Fiber<A, E>, never, R>
<A, E, R>(
  self: Effect<A, E, R>,
  scope: Scope,
  options?: {
    readonly startImmediately?: boolean | undefined
    readonly uninterruptible?: boolean | "inherit" | undefined
  }
): Effect<Fiber<A, E>, never, R>

Forks the effect in the specified scope. The fiber will be interrupted when the scope is closed.

Example (Forking into a supplied scope)

import { Effect } from "effect"

const task = Effect.gen(function*() {
  yield* Effect.sleep("10 seconds")
  return "completed"
})

const program = Effect.scoped(
  Effect.gen(function*() {
    const scope = yield* Effect.scope
    const fiber = yield* Effect.forkIn(task, scope)
    yield* Effect.sleep("1 second")
    // Fiber will be interrupted when scope closes
    return "done"
  })
)
supervision & fibers
Source effect/Effect.ts:859117 lines
export const forkIn: {
  (
    scope: Scope,
    options?: {
      readonly startImmediately?: boolean | undefined
      readonly uninterruptible?: boolean | "inherit" | undefined
    }
  ): <A, E, R>(self: Effect<A, E, R>) => Effect<Fiber<A, E>, never, R>
  <A, E, R>(
    self: Effect<A, E, R>,
    scope: Scope,
    options?: {
      readonly startImmediately?: boolean | undefined
      readonly uninterruptible?: boolean | "inherit" | undefined
    }
  ): Effect<Fiber<A, E>, never, R>
} = internal.forkIn
Referenced by 13 symbols