Skuld.Coroutine.ExternalSuspended (skuld v0.27.3)

View Source

Fiber suspended for an external caller (e.g. Yield).

Env semantics

k closes over the env at suspension time — resuming ignores env entirely. env is stored solely for cancel/2, which invokes leave_scope to run scoped-effect cleanup. State in env is stale (the scheduler extracted it at suspension) but leave_scope handlers may still read it during teardown.

Summary

Types

t()

@type t() :: %Skuld.Coroutine.ExternalSuspended{
  data: term(),
  env: Skuld.Comp.Env.t(),
  id: reference(),
  k: Skuld.Comp.Types.k(),
  value: term()
}