Hyperlinkv0.8.0-beta.28

FiberMap

FiberMap.clearconsteffect/FiberMap.ts:688
<K, A, E>(self: FiberMap<K, A, E>): Effect.Effect<void>

Removes all fibers from the FiberMap, interrupting them.

Example (Clearing all fibers)

import { Effect, FiberMap } from "effect"

const program = Effect.gen(function*() {
  const map = yield* FiberMap.make<string>()

  // Add some fibers to the map
  yield* FiberMap.run(map, "task1", Effect.never)
  yield* FiberMap.run(map, "task2", Effect.never)
  yield* FiberMap.run(map, "task3", Effect.never)

  console.log(yield* FiberMap.size(map)) // 3

  // Clear all fibers (this will interrupt all of them)
  yield* FiberMap.clear(map)

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