Repository navigation
v0.8.0
One process table (browser-substrate ADR-0129 step 1): a host whose kernel
owns its processes gives each run that kernel's numbers, and tabnode keeps no
second table for it. The exported surface changed, hence a minor release.
- A run can carry its own process registry (
RunOptions.registry, for
runNodeandcontainer.run): a run whose process has a kernel connection
of its own takes its pid, its children,kill, liveness and group lookups
from that registry, in the run's own pid namespace. Every other run, and the
realm's own process, use the realm's registry as before. ProcessRegistrygainsexec,exitandreap, andallocatetakes the
parent pid and whether the child leads a session of its own. A pid is made
only at a fork. An image that starts in a process another forked (a
kernel's shell exec'ingnode) is anexecand keeps its pid, so it is no
longer refused with "Process identifier is already held." An embedder that
implementsProcessRegistryadds the three methods (one on the old
interface fails at its first child's exit, not only at an exec); tabnode's
own registry stays the standalone implementation, whereexecis the claim
it was.runNodeandcontainer.rungivenprocessin a realm that is a registry
client no longer throw "This realm is a process registry client": the run is
an exec in its registry. Acontainer.runline givenprocessor
registryis a kernel's shell process: eachnodeit runs is that shell's
child, numbered through its registry, and the line gives its pid back when it
ends.- A child's end is the status its zombie holds, which its parent's wait reaps;
a run the runtime failed to run is killed (SIGKILL) rather than given an
exit code it never passed, and a killed run ends with its signal and no exit
code, libuv's pair. - A run is attributed by its scope, never by which run launched last: a
binding's callbacks run inside the run that owns the binding, as Node's
MakeCallback runs them, and a throw from a timer, immediate or microtask is
the uncaught exception of the run that scheduled it. A child's parent is the
run whoseProcesshandle spawned it.