From 24a21f7520ce91681e573833b7f33156e308964a Mon Sep 17 00:00:00 2001 From: zinc Date: Thu, 15 Oct 2026 14:36:10 +0330 Subject: docs: hold blocks in LEARN.md (36-hold), spec 5.16, ACTOR.md; TODO: m:n scheduler and follow-ups --- docs/ACTOR.md | 2 ++ 1 file changed, 2 insertions(+) (limited to 'docs/ACTOR.md') diff --git a/docs/ACTOR.md b/docs/ACTOR.md index 2dc6158..629de20 100644 --- a/docs/ACTOR.md +++ b/docs/ACTOR.md @@ -4,6 +4,8 @@ actors run asynchronously in separate operating-system processes on the native and portable micro interpreters on posix hosts. each worker has its own vm stack, heap, globals and captured handler state. workers can execute in parallel. these are isolated worker processes, rather than shared-memory threads. +a worker starts from a copy-on-write snapshot of its parent's vm: the code, the compiler and every page the parent hasn't changed since the snapshot are one set of physical pages for all workers, and an idle worker costs well under a megabyte. globals are still each worker's own. state every actor sees is declared `shared` in a top-level `hold` block, whose functions use it under the block's lock (spec 5.16, LEARN.md "hold blocks"). + ```zc namespace; include rt, actor; -- cgit v1.2.3