Hyperlinkv0.8.0-beta.28

FiberSet

FiberSet.clearconsteffect/FiberSet.ts:414
<A, E>(self: FiberSet<A, E>): Effect.Effect<void>

Interrupts all fibers in the FiberSet and clears the set.

Example (Clearing all fibers)

import { Effect, FiberSet } from "effect"

const program = Effect.gen(function*() {
  const set = yield* FiberSet.make()

  // Add some fibers
  yield* FiberSet.run(set, Effect.never)
  yield* FiberSet.run(set, Effect.never)

  console.log(yield* FiberSet.size(set)) // 2

  // Clear all fibers
  yield* FiberSet.clear(set)

  console.log(yield* FiberSet.size(set)) // 0
})
combinators
export const clear = <A, E>(self: FiberSet<A, E>): Effect.Effect<void> =>
  Effect.suspend(() => {
    if (self.state._tag === "Closed") {
      return Effect.void
    }
    return Fiber.interruptAllAs(self.state.backing, internalFiberId)
  })