Skip to content

History / Folly to Coroutine Migration

Revisions

  • Add allocation-count section + correct the HALO claim Coroutines page: new "Many awaits, one frame" section — N sequential co_awaits are one fixed frame (the fewer-allocation-calls win vs Folly's Core-per-.thenValue), and a precise account of why HALO can't elide the I/O frames: they suspend cross-thread (value_awaitable::complete resumes the stored handle from a foreign thread), so the frame escapes its caller and heap allocation is mandatory, not a missed optimization. Levers are flattening forwarders / a pooled operator new, not HALO. Migration page: fix the Pillar 1 hedge that implied HALO might rescue the per-write frames — it can't; the count is chain depth, not elision. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

    @szmyd szmyd committed Jun 8, 2026
  • Fix write-path mermaid diagram render (semicolon parse error) GitHub mermaid reads ; as a statement separator, so the journal step (async_write_journal(...) ; co_await req->promise_) parsed the tail as a broken arrow and failed to render. Reword without the semicolon; also note write_to_index is synchronous (same thread, no await). Render validated. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

    @szmyd szmyd committed Jun 8, 2026
  • Add ublk adapter hop-off/hop-on sequence diagram A two-lane mermaid sequence (ublk queue thread <-> HomeBlocks reactors) in the threading section, showing the run_on_forget hop off the queue thread and the IORING_OP_MSG_RING hop back onto the queue ring. Validated render. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

    @szmyd szmyd committed Jun 8, 2026
  • Update ublk bridge references to the msg_ring design The ublk adapter now hands HomeStore completions to the queue ring via IORING_OP_MSG_RING (iomgr post_msg_ring) instead of an eventfd + service-loop bridge; update the two threading-section references accordingly. The off-reactor war story is bridge-independent and is unchanged. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

    @szmyd szmyd committed Jun 8, 2026
  • Add v8 coroutine migration page (Folly futures -> sisl::async) Wiki for engineers who know the old Folly-future architecture: how the HomeBlocks/HomeStore I/O path works on the C++23 sisl::async coroutine ("v8") stack, centered on the heap/allocation and threading/affinity differences, with annotated before/after of the hot write/read path. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

    @szmyd szmyd committed Jun 8, 2026