Login
You're viewing the felin.social public feed.
  • Nov 11, 2026, 2:48 PM

    I should also mention that this is not "early snapshot semantics" but "late snapshot semantics" since the trick for restoring thread states is that you independently roll forward each cooperative thread from its local quiescent snapshot (corresponding to the thread's main loop) by replaying from the log, which is what avoids the difficult issues with on-stack replacement. This only requires that each thread returns to its main loop infinitely often, as long as it's running.

    💬 1🔄 0⭐ 1

Replies

  • Nov 11, 2026, 2:54 PM

    Each thread returning to its main loop infinitely often (in practice it needs to have a reasonable latency bound, e.g. infinitely often with exponential recurrence time is totally unacceptable in practice) is a reasonable restriction on a full-system emulator and other software systems where all threads operate in a top-level event-driven style (e.g. don't block within a thread stack waiting on an IO event that might never happen, stuff like that has to be handled via the top-level event loops).

    💬 0🔄 0⭐ 2