@volter/browser-wali 0.1.146 → 0.1.147

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. package/dist/capabilities.d.ts +1 -1
  2. package/dist/capabilities.d.ts.map +1 -1
  3. package/dist/capabilities.js +2 -2
  4. package/dist/capabilities.js.map +1 -1
  5. package/dist/child-processes.d.ts +1 -1
  6. package/dist/child-processes.d.ts.map +1 -1
  7. package/dist/child-processes.js +3 -2
  8. package/dist/child-processes.js.map +1 -1
  9. package/dist/filesystem-host.d.ts +1 -0
  10. package/dist/filesystem-host.d.ts.map +1 -1
  11. package/dist/filesystem-host.js +36 -9
  12. package/dist/filesystem-host.js.map +1 -1
  13. package/dist/fork-worker.js +7 -0
  14. package/dist/fork-worker.js.map +1 -1
  15. package/dist/host-idle.d.ts +2 -1
  16. package/dist/host-idle.d.ts.map +1 -1
  17. package/dist/host-idle.js +19 -4
  18. package/dist/host-idle.js.map +1 -1
  19. package/dist/jumps.d.ts +68 -0
  20. package/dist/jumps.d.ts.map +1 -0
  21. package/dist/jumps.js +216 -0
  22. package/dist/jumps.js.map +1 -0
  23. package/dist/memory.d.ts.map +1 -1
  24. package/dist/memory.js +36 -20
  25. package/dist/memory.js.map +1 -1
  26. package/dist/network-protocol.d.ts +4 -0
  27. package/dist/network-protocol.d.ts.map +1 -1
  28. package/dist/network-worker.js +49 -11
  29. package/dist/network-worker.js.map +1 -1
  30. package/dist/network.d.ts +4 -3
  31. package/dist/network.d.ts.map +1 -1
  32. package/dist/network.js +28 -6
  33. package/dist/network.js.map +1 -1
  34. package/dist/process-bridge.d.ts +2 -0
  35. package/dist/process-bridge.d.ts.map +1 -1
  36. package/dist/process-bridge.js +4 -2
  37. package/dist/process-bridge.js.map +1 -1
  38. package/dist/runtime.d.ts.map +1 -1
  39. package/dist/runtime.js +72 -11
  40. package/dist/runtime.js.map +1 -1
  41. package/dist/signals.d.ts +1 -0
  42. package/dist/signals.d.ts.map +1 -1
  43. package/dist/signals.js +9 -1
  44. package/dist/signals.js.map +1 -1
  45. package/dist/stdin.d.ts +2 -0
  46. package/dist/stdin.d.ts.map +1 -1
  47. package/dist/stdin.js +7 -2
  48. package/dist/stdin.js.map +1 -1
  49. package/dist/syscall-trace.d.ts +13 -0
  50. package/dist/syscall-trace.d.ts.map +1 -0
  51. package/dist/syscall-trace.js +20 -0
  52. package/dist/syscall-trace.js.map +1 -0
  53. package/dist/system.d.ts +3 -3
  54. package/dist/system.d.ts.map +1 -1
  55. package/dist/system.js +15 -12
  56. package/dist/system.js.map +1 -1
  57. package/dist/thread-coordinator-worker.js +5 -1
  58. package/dist/thread-coordinator-worker.js.map +1 -1
  59. package/dist/thread-worker.js +10 -2
  60. package/dist/thread-worker.js.map +1 -1
  61. package/dist/threads.d.ts +3 -0
  62. package/dist/threads.d.ts.map +1 -1
  63. package/dist/threads.js +9 -1
  64. package/dist/threads.js.map +1 -1
  65. package/dist/types.d.ts +2 -0
  66. package/dist/types.d.ts.map +1 -1
  67. package/dist/wait-state.d.ts +76 -0
  68. package/dist/wait-state.d.ts.map +1 -0
  69. package/dist/wait-state.js +156 -0
  70. package/dist/wait-state.js.map +1 -0
  71. package/dist/worker-program-protocol.d.ts +16 -2
  72. package/dist/worker-program-protocol.d.ts.map +1 -1
  73. package/dist/worker-program-worker.js +7 -0
  74. package/dist/worker-program-worker.js.map +1 -1
  75. package/dist/worker-program.d.ts +5 -1
  76. package/dist/worker-program.d.ts.map +1 -1
  77. package/dist/worker-program.js +67 -6
  78. package/dist/worker-program.js.map +1 -1
  79. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wait-state.d.ts","sourceRoot":"","sources":["../src/wait-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,4CAA4C,CAAC;AAE3F,eAAO,MAAM,aAAa,eAAwC,CAAC;AACnE,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,wEAAwE;IACxE,KAAK,EAAE,iBAAiB,CAAC;CAC1B;AACD,MAAM,WAAW,YAAY;IAAG,KAAK,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE;AACjF,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,mFAAmF;IACnF,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,CAAC,EAAE,YAAY,EAAE,CAAC;IACxB,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,YAAY,CAAA;KAAE,CAAC,CAAC;CAC3D;AACD,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,aAAa,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,cAAc,CAAC;CACzB;AACD,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,UAAQ,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,QAAQ,oBAA2B,GAAG,aAAa,CAKpI;AACD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAM1E;AAGD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,iBAAiB,GAAG,SAAS,GAAG,IAAI,CAAuB;AACvG,wBAAgB,iBAAiB,IAAI,YAAY,EAAE,CAIlD;AACD,wBAAgB,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,IAAI,GAAE,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,EAAO,GAAG,CAAC,CAExG;AACD,wBAAgB,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,CAKtI;AAED,sFAAsF;AACtF,qBAAa,iBAAiB;IAKhB,QAAQ,CAAC,KAAK,EAAE,aAAa;IAAE,OAAO,CAAC,QAAQ,CAAC,IAAI;IAC9D,OAAO,CAAC,QAAQ,CAAC,UAAU;IAL7B,OAAO,CAAC,IAAI,CAAW;IACvB,OAAO,CAAC,IAAI,CAAoC;IAChD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAa;IACnC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAa;gBACjB,KAAK,EAAE,aAAa,EAAmB,IAAI,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,EAC/E,UAAU,GAAE,MAAM,YAAY,EAAa;IAI9D,QAAQ,IAAI,IAAI;IAChB,KAAK,CAAC,GAAG,SAAiB,GAAG,IAAI;IACjC,MAAM,IAAI,IAAI;IACd,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,IAAI,GAAE,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,EAAO,GAAG,CAAC;IASrF,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC;IAItD,OAAO,CAAC,OAAO;CAQhB;AAED,uDAAuD;AACvD,qBAAa,aAAa;IAIZ,OAAO,CAAC,QAAQ,CAAC,IAAI;IAHjC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAwE;IAC7F,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;gBAChB,IAAI,EAAE,CAAC,MAAM,EAAE,wBAAwB,KAAK,IAAI;IAC7E,GAAG,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAC/B,MAAM,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAClC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAGhC,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI;IAG1D,MAAM,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI;IAOpC,OAAO,CAAC,OAAO;CAwBhB;AAMD,MAAM,WAAW,uBAAuB;IAAG,KAAK,EAAE,aAAa,CAAC;IAAC,KAAK,EAAE,aAAa,CAAA;CAAE;AACvF,MAAM,MAAM,kBAAkB,GAAG;IAAE,CAAC,aAAa,CAAC,CAAC,EAAE,uBAAuB,CAAA;CAAE,CAAC"}
@@ -0,0 +1,156 @@
1
+ export const waliWaitOwner = Symbol.for("@volter/wali/wait-owner");
2
+ export function createWaliWaitAgent(pid, retired = false, image, activity = new SharedArrayBuffer(4)) {
3
+ const state = new SharedArrayBuffer(3 * Int32Array.BYTES_PER_ELEMENT);
4
+ Atomics.store(new Int32Array(state), 1, retired ? 2 : 0);
5
+ const key = crypto.randomUUID();
6
+ return { key, image: image ?? key, activity, pid, state };
7
+ }
8
+ export function startWaliWaitAgent(agent, tid) {
9
+ const words = new Int32Array(agent.state);
10
+ Atomics.add(words, 0, 1);
11
+ Atomics.store(words, 2, tid);
12
+ Atomics.store(words, 1, 0);
13
+ Atomics.add(words, 0, 1);
14
+ }
15
+ let publisher;
16
+ export function setWaliWaitPublisher(value) { publisher = value; }
17
+ export function waliActivityGuard() {
18
+ if (!publisher)
19
+ return [];
20
+ const words = new Int32Array(publisher.agent.activity);
21
+ return [{ words, index: 0, value: Atomics.load(words, 0) }];
22
+ }
23
+ export function waliCall(name, operation, args = []) {
24
+ return publisher ? publisher.call(name, operation, args) : operation();
25
+ }
26
+ export function waliPark(words, index, value, reason, operation) {
27
+ if (!publisher)
28
+ return operation();
29
+ return publisher.park(reason ? { ...reason, guards: [{ words, index, value }, ...(reason.guards ?? [])] }
30
+ : { resource: "host request", deadline: null, guards: [{ words, index, value }],
31
+ outside: [{ source: "unclassified host wake source" }] }, operation);
32
+ }
33
+ /** One realm's agent. Metadata arrives by message; liveness is shared and current. */
34
+ export class WaliWaitPublisher {
35
+ agent;
36
+ send;
37
+ wakeGuards;
38
+ name = "guest";
39
+ args = [];
40
+ words;
41
+ activity;
42
+ constructor(agent, send, wakeGuards = () => []) {
43
+ this.agent = agent;
44
+ this.send = send;
45
+ this.wakeGuards = wakeGuards;
46
+ this.words = new Int32Array(agent.state);
47
+ this.activity = new Int32Array(agent.activity);
48
+ }
49
+ register() { this.publish(Atomics.load(this.words, 1)); }
50
+ start(tid = this.agent.pid) { Atomics.store(this.words, 2, tid); this.publish(0); }
51
+ retire() { this.publish(2); }
52
+ call(name, operation, args = []) {
53
+ const previous = this.name;
54
+ const previousArgs = this.args;
55
+ this.name = name;
56
+ this.args = args;
57
+ const activity = this.activity;
58
+ Atomics.add(activity, 0, 1);
59
+ try {
60
+ return operation();
61
+ }
62
+ finally {
63
+ Atomics.add(activity, 0, 1);
64
+ this.name = previous;
65
+ this.args = previousArgs;
66
+ }
67
+ }
68
+ park(reason, operation) {
69
+ this.publish(1, { ...reason, guards: [...(reason.guards ?? []), ...this.wakeGuards()] });
70
+ try {
71
+ return operation();
72
+ }
73
+ finally {
74
+ this.publish(0);
75
+ }
76
+ }
77
+ publish(state, reason) {
78
+ // Odd revisions are in progress. The owner double-collects stable rows.
79
+ Atomics.add(this.words, 0, 1);
80
+ Atomics.store(this.words, 1, state);
81
+ const revision = Atomics.add(this.words, 0, 1) + 1;
82
+ this.send({ agent: this.agent, revision, call: reason ? `${this.name}(${this.args.map(String).join(",")})` : this.name,
83
+ ...(reason ? { reason } : {}) });
84
+ }
85
+ }
86
+ /** Dynamic rows, no process ceiling and no timeout. */
87
+ export class WaliWaitTable {
88
+ fail;
89
+ rows = new Map();
90
+ reported = false;
91
+ retired = new Set();
92
+ constructor(fail) {
93
+ this.fail = fail;
94
+ }
95
+ add(agent) { this.rows.set(agent.key, { agent }); }
96
+ remove(agent) { this.rows.delete(agent.key); this.retired.add(agent.key); }
97
+ removeImage(image) {
98
+ for (const row of this.rows.values())
99
+ if (row.agent.image === image)
100
+ this.remove(row.agent);
101
+ }
102
+ retireProcessImage(pid, replacement) {
103
+ for (const row of this.rows.values())
104
+ if (row.agent.pid === pid && row.agent.key !== replacement)
105
+ this.remove(row.agent);
106
+ }
107
+ update(update) {
108
+ if (this.retired.has(update.agent.key))
109
+ return;
110
+ const row = this.rows.get(update.agent.key);
111
+ if (!row)
112
+ this.rows.set(update.agent.key, { agent: update.agent, update });
113
+ else
114
+ row.update = update;
115
+ this.inspect();
116
+ }
117
+ inspect() {
118
+ if (this.reported)
119
+ return;
120
+ const live = [];
121
+ for (const row of this.rows.values()) {
122
+ const words = new Int32Array(row.agent.state), revision = Atomics.load(words, 0);
123
+ if (revision & 1)
124
+ return;
125
+ const state = Atomics.load(words, 1);
126
+ if (state === 2)
127
+ continue;
128
+ const update = row.update;
129
+ if (state !== 1 || !update?.reason || revision !== update.revision)
130
+ return;
131
+ if (update.reason.deadline !== null || !closed(update.reason))
132
+ return;
133
+ live.push({ update, tid: Atomics.load(words, 2) });
134
+ }
135
+ if (!live.length)
136
+ return;
137
+ for (const { update } of live) {
138
+ const words = new Int32Array(update.agent.state);
139
+ if (Atomics.load(words, 0) !== update.revision || Atomics.load(words, 1) !== 1
140
+ || !closed(update.reason))
141
+ return;
142
+ }
143
+ this.reported = true;
144
+ this.fail({ kind: "closed-wait-set", observedAt: new Date().toISOString(),
145
+ processes: live.map(({ update, tid }) => ({ pid: update.agent.pid, tid,
146
+ call: update.call, resource: update.reason.resource, deadline: null })) });
147
+ }
148
+ }
149
+ function equal(word) { return Atomics.load(word.words, word.index) === word.value; }
150
+ function closed(reason) {
151
+ return (reason.guards ?? []).every(equal)
152
+ && !(reason.outside ?? []).some((source) => !source.while || equal(source.while));
153
+ }
154
+ // Limitation: a CPU loop without syscalls stays running. An unclassified host
155
+ // or execution backend is conservatively live, never guessed to be parked.
156
+ //# sourceMappingURL=wait-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wait-state.js","sourceRoot":"","sources":["../src/wait-state.ts"],"names":[],"mappings":"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"}
@@ -2,8 +2,10 @@ import type { BrowserFileSystemSnapshot } from "@volter/browser-runtime/browser-
2
2
  import type { BrowserFileLockChannel } from "@volter/browser-runtime/browser-file-locks.js";
3
3
  import type { BrowserProcessFilesystemPatch, WaliBrowserSpawnMessage } from "./process-bridge.js";
4
4
  export interface WaliWorkerRunRequest {
5
+ waitAgent?: import("./wait-state.js").WaliWaitAgent;
5
6
  descriptorTable?: import("./filesystem-protocol.js").WaliFilesystemChannel;
6
7
  type: "run";
8
+ traceSyscalls?: boolean;
7
9
  /** The process this program IS, when the lane exec'd it into an existing one. */
8
10
  pid?: number;
9
11
  parentPid?: number;
@@ -55,6 +57,9 @@ export interface WaliWorkerRunRequest {
55
57
  threadOutputPorts?: MessagePort[];
56
58
  }
57
59
  export type WaliThreadOutputMessage = {
60
+ type: "wait-state";
61
+ update: import("./wait-state.js").WaliWaitUpdate;
62
+ } | {
58
63
  type: "stdout" | "stderr";
59
64
  bytes: Uint8Array;
60
65
  ack?: SharedArrayBuffer;
@@ -75,9 +80,13 @@ export interface WaliCompiledModule {
75
80
  module: WebAssembly.Module;
76
81
  layout?: import("./module-layout.js").WaliMemoryLayout;
77
82
  }
78
- export type WaliWorkerResponse =
83
+ export type WaliWorkerResponse = {
84
+ type: "wait-state";
85
+ id: number;
86
+ update: import("./wait-state.js").WaliWaitUpdate;
87
+ }
79
88
  /** A worker compiled the program's module; the page keeps it for the program's next worker. */
80
- {
89
+ | {
81
90
  type: "compiled";
82
91
  id: number;
83
92
  compiled: WaliCompiledModule;
@@ -86,8 +95,13 @@ export type WaliWorkerResponse =
86
95
  id: number;
87
96
  stdin: SharedArrayBuffer;
88
97
  threadPoolSize: number;
98
+ traceSyscalls?: boolean;
89
99
  network?: WaliWorkerRunRequest["network"];
90
100
  } & import("./process-bridge.js").WaliBrowserForkRequest) | {
101
+ type: "syscall-trace";
102
+ id: number;
103
+ entry: import("./syscall-trace.js").WaliSyscallTrace;
104
+ } | {
91
105
  type: "stdout";
92
106
  id: number;
93
107
  chunk: Uint8Array;
@@ -1 +1 @@
1
- {"version":3,"file":"worker-program-protocol.d.ts","sourceRoot":"","sources":["../src/worker-program-protocol.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worker-program-protocol.d.ts","sourceRoot":"","sources":["../src/worker-program-protocol.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { lowerTreeOf } from "./shared-file-layer.js";
2
2
  import { openPackReader } from "@volter/browser-runtime/browser-pack-store.js";
3
3
  import { BrowserWaliRuntime } from "./runtime.js";
4
+ import { waliSyscallTrace } from "./syscall-trace.js";
4
5
  import { findImportedMemory, memoryForLayout } from "./module-layout.js";
5
6
  import { SnapshotWaliFileSystem } from "./snapshot-filesystem.js";
6
7
  import { SharedWaliStdinReader } from "./stdin.js";
@@ -88,7 +89,11 @@ async function run(request) {
88
89
  const moduleMs = performance.now() - moduleStarted;
89
90
  const memoryLayout = artifact.layout;
90
91
  const memory = memoryLayout ? memoryForLayout(memoryLayout) : undefined;
92
+ const onSyscall = waliSyscallTrace(request.traceSyscalls
93
+ ? entry => send({ type: "syscall-trace", id: request.id, entry }) : undefined, { pid: request.pid ?? 1, parentPid: request.parentPid ?? 0 });
91
94
  const result = await new BrowserWaliRuntime().run(artifact.module, {
95
+ ...(request.waitAgent ? { waitAgent: request.waitAgent } : {}),
96
+ onWaitState: update => send({ type: "wait-state", id: request.id, update }),
92
97
  argv: request.argv,
93
98
  ...(request.pid !== undefined ? { pid: request.pid } : {}),
94
99
  ...(request.parentPid !== undefined ? { parentPid: request.parentPid } : {}),
@@ -125,6 +130,7 @@ async function run(request) {
125
130
  // with a network naming nothing, which the child's runtime refuses
126
131
  // before it runs (every `fork` then ended in a silent 127).
127
132
  fork: (process) => send({ type: "fork", id: request.id, ...process, stdin: request.stdin, threadPoolSize: request.threadPoolSize,
133
+ ...(request.traceSyscalls ? { traceSyscalls: true } : {}),
128
134
  ...(request.network && request.network.allowedHosts.length > 0 ? { network: request.network } : {}) }),
129
135
  ...(request.childFilesystemPolicyVersion === 1 ? { filesystemPolicyVersion: 1 } : {}),
130
136
  spawn: (process) => send({
@@ -139,6 +145,7 @@ async function run(request) {
139
145
  onStdout: (chunk) => send({ type: "stdout", id: request.id, chunk }),
140
146
  onStderr: (chunk) => send({ type: "stderr", id: request.id, chunk: new TextDecoder().decode(chunk) }),
141
147
  onDiagnostic: (message) => send({ type: "diagnostic", id: request.id, message }),
148
+ ...(onSyscall ? { onSyscall } : {}),
142
149
  onFilesystemFinalized: () => { filesystemFinalized = true; },
143
150
  });
144
151
  const snapshotStarted = performance.now();
@@ -1 +1 @@
1
- {"version":3,"file":"worker-program-worker.js","sourceRoot":"","sources":["../src/worker-program-worker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worker-program-worker.js","sourceRoot":"","sources":["../src/worker-program-worker.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,10 @@ import { type BrowserProcessFilesystemPatch } from "./process-bridge.js";
4
4
  import type { BrowserCommandBackend } from "./types.js";
5
5
  import type { WaliLoopbackAttachment } from "./loopback-protocol.js";
6
6
  import type { BrowserProcessFileSystem } from "@volter/browser-runtime/browser-process-filesystem.js";
7
+ import { type WaliWaitRunOptions } from "./wait-state.js";
7
8
  export interface BrowserWaliWorkerProgramOptions {
9
+ /** Passive upstream-proof coverage; omitted in ordinary execution. */
10
+ onSyscallTrace?(entry: import("./syscall-trace.js").WaliSyscallTrace): void;
8
11
  url: string;
9
12
  /**
10
13
  * Trees the host already holds as shared layers (`sharedFileLayerFromIndex`),
@@ -95,12 +98,13 @@ export declare class BrowserWaliWorkerProgram {
95
98
  private readonly traceId;
96
99
  private preparing;
97
100
  private applyingFilesystem;
101
+ private waitOwner;
98
102
  constructor(filesystem: BrowserFileSystem, program: BrowserWaliWorkerProgramOptions);
99
103
  /** The trees of the host's layers this run reads (`layers`): what the program writes there stays the program's. */
100
104
  private hostRoots;
101
105
  /** A patch without the host's trees, which the page does not hold (review of c5de163: a program's bytecode landed in the page). */
102
106
  private withoutHostTrees;
103
- run(argv: readonly string[], options?: BrowserProcessRunOptions): Promise<BrowserProcessResult>;
107
+ run(argv: readonly string[], options?: BrowserProcessRunOptions & WaliWaitRunOptions): Promise<BrowserProcessResult>;
104
108
  private forwardStdin;
105
109
  get running(): boolean;
106
110
  sendInput(data: string | Uint8Array): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"worker-program.d.ts","sourceRoot":"","sources":["../src/worker-program.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,MAAM,+CAA+C,CAAC;AAClH,OAAO,KAAK,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAcjF,OAAO,EAOL,KAAK,6BAA6B,EAInC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AASrE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uDAAuD,CAAC;AAItG,MAAM,WAAW,+BAA+B;IAC9C,GAAG,EAAE,MAAM,CAAC;IACZ;;;;;OAKG;IACH,MAAM,CAAC,EAAE,SAAS,OAAO,wBAAwB,EAAE,eAAe,EAAE,CAAC;IAGrE;;;;;;;;OAQG;IACH,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,uFAAuF;IACvF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACvC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,+DAA+D;IAC/D,KAAK,CAAC,EAAE;QAAE,OAAO,EAAE,CAAC,CAAA;KAAE,CAAC;IACvB,OAAO,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;QAAC,cAAc,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1G,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,sBAAsB,CAAC;IAClC,6EAA6E;IAC7E,KAAK,CAAC,EAAE,qBAAqB,CAAC;IAC9B,yEAAyE;IACzE,kBAAkB,CAAC,CACjB,UAAU,EAAE,iBAAiB,EAC7B,KAAK,CAAC,EAAE,OAAO,qBAAqB,EAAE,6BAA6B,GAClE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxB;;;;;OAKG;IACH,kBAAkB,CAAC,IAAI,SAAS,MAAM,EAAE,CAAC;IACzC,2FAA2F;IAC3F,iBAAiB,CAAC,CAAC,QAAQ,EAAE,yBAAyB,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAC;IAC5F,+FAA+F;IAC/F,kBAAkB,CAAC,CAAC,QAAQ,EAAE,yBAAyB,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAC;IAC7F,qFAAqF;IACrF,uBAAuB,CAAC,CAAC,KAAK,EAAE,6BAA6B,GAAG,OAAO,CAAC,6BAA6B,CAAC,CAAC;IACvG,oGAAoG;IACpG,mBAAmB,CAAC,EAAE,wBAAwB,CAAC;CAChD;AAmDD;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAgB/E;AAED,qBAAa,wBAAwB;IAoBvB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAAqB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAnBpF,QAAQ,CAAC,YAAY;;OAAsD;IAC3E,6FAA6F;IAC7F,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,OAAO,CAAyB;IACxC,OAAO,CAAC,KAAK,CAAoC;IACjD,OAAO,CAAC,YAAY,CAA6B;IACjD,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA6B;IACzD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAsC;IACvE,OAAO,CAAC,cAAc,CAAsC;IAC5D,OAAO,CAAC,WAAW,CAAM;IACzB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAqB;IAChD,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,iBAAiB,CAAqB;IAC9C,OAAO,CAAC,oBAAoB,CAA0B;IACtD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuB;IAC/C,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,kBAAkB,CAAS;gBAEN,UAAU,EAAE,iBAAiB,EAAmB,OAAO,EAAE,+BAA+B;IAErH,mHAAmH;IACnH,OAAO,CAAC,SAAS,CAAgB;IAEjC,mIAAmI;IACnI,OAAO,CAAC,gBAAgB;IAIlB,GAAG,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,OAAO,GAAE,wBAA6B,GAAG,OAAO,CAAC,oBAAoB,CAAC;YA0T3F,YAAY;IAgC1B,IAAI,OAAO,IAAI,OAAO,CAAyD;IAE/E,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,OAAO;IAI7C,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAK3C,iFAAiF;IACjF,iBAAiB,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,GAAG,IAAI;IAIrE,SAAS,IAAI,IAAI;IAMjB,OAAO,CAAC,YAAY;YAqBN,aAAa;IA6D3B,OAAO,CAAC,SAAS;YAkBH,UAAU;YAiHV,wBAAwB;IAyEtC;;;;;;OAMG;IACH,OAAO,CAAC,WAAW;IAInB,mGAAmG;IACnG,OAAO,CAAC,UAAU;IA4BlB,OAAO,CAAC,wBAAwB;IA2ChC,OAAO,CAAC,aAAa;IAkBrB,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,YAAY;IAYpB,OAAO,CAAC,WAAW;CAQpB;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,YAAY,CAE/E"}
1
+ {"version":3,"file":"worker-program.d.ts","sourceRoot":"","sources":["../src/worker-program.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,MAAM,+CAA+C,CAAC;AAClH,OAAO,KAAK,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAcjF,OAAO,EAOL,KAAK,6BAA6B,EAInC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AASrE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uDAAuD,CAAC;AAGtG,OAAO,EAAmF,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAE3I,MAAM,WAAW,+BAA+B;IAC9C,sEAAsE;IACtE,cAAc,CAAC,CAAC,KAAK,EAAE,OAAO,oBAAoB,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC5E,GAAG,EAAE,MAAM,CAAC;IACZ;;;;;OAKG;IACH,MAAM,CAAC,EAAE,SAAS,OAAO,wBAAwB,EAAE,eAAe,EAAE,CAAC;IAGrE;;;;;;;;OAQG;IACH,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,uFAAuF;IACvF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACvC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,+DAA+D;IAC/D,KAAK,CAAC,EAAE;QAAE,OAAO,EAAE,CAAC,CAAA;KAAE,CAAC;IACvB,OAAO,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;QAAC,cAAc,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1G,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,sBAAsB,CAAC;IAClC,6EAA6E;IAC7E,KAAK,CAAC,EAAE,qBAAqB,CAAC;IAC9B,yEAAyE;IACzE,kBAAkB,CAAC,CACjB,UAAU,EAAE,iBAAiB,EAC7B,KAAK,CAAC,EAAE,OAAO,qBAAqB,EAAE,6BAA6B,GAClE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxB;;;;;OAKG;IACH,kBAAkB,CAAC,IAAI,SAAS,MAAM,EAAE,CAAC;IACzC,2FAA2F;IAC3F,iBAAiB,CAAC,CAAC,QAAQ,EAAE,yBAAyB,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAC;IAC5F,+FAA+F;IAC/F,kBAAkB,CAAC,CAAC,QAAQ,EAAE,yBAAyB,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAC;IAC7F,qFAAqF;IACrF,uBAAuB,CAAC,CAAC,KAAK,EAAE,6BAA6B,GAAG,OAAO,CAAC,6BAA6B,CAAC,CAAC;IACvG,oGAAoG;IACpG,mBAAmB,CAAC,EAAE,wBAAwB,CAAC;CAChD;AAmDD;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAgB/E;AAED,qBAAa,wBAAwB;IAqBvB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAAqB,OAAO,CAAC,QAAQ,CAAC,OAAO;IApBpF,QAAQ,CAAC,YAAY;;OAAsD;IAC3E,6FAA6F;IAC7F,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,OAAO,CAAyB;IACxC,OAAO,CAAC,KAAK,CAAoC;IACjD,OAAO,CAAC,YAAY,CAA6B;IACjD,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA6B;IACzD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAsC;IACvE,OAAO,CAAC,cAAc,CAAsC;IAC5D,OAAO,CAAC,WAAW,CAAM;IACzB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAqB;IAChD,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,iBAAiB,CAAqB;IAC9C,OAAO,CAAC,oBAAoB,CAA0B;IACtD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuB;IAC/C,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,kBAAkB,CAAS;IACnC,OAAO,CAAC,SAAS,CAAsC;gBAE1B,UAAU,EAAE,iBAAiB,EAAmB,OAAO,EAAE,+BAA+B;IAErH,mHAAmH;IACnH,OAAO,CAAC,SAAS,CAAgB;IAEjC,mIAAmI;IACnI,OAAO,CAAC,gBAAgB;IAIlB,GAAG,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,OAAO,GAAE,wBAAwB,GAAG,kBAAuB,GAAG,OAAO,CAAC,oBAAoB,CAAC;YA8UhH,YAAY;IAgC1B,IAAI,OAAO,IAAI,OAAO,CAAyD;IAE/E,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,OAAO;IAI7C,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAK3C,iFAAiF;IACjF,iBAAiB,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,GAAG,IAAI;IAIrE,SAAS,IAAI,IAAI;IAMjB,OAAO,CAAC,YAAY;YAwBN,aAAa;IAkE3B,OAAO,CAAC,SAAS;YAuBH,UAAU;YAyHV,wBAAwB;IAyEtC;;;;;;OAMG;IACH,OAAO,CAAC,WAAW;IAInB,mGAAmG;IACnG,OAAO,CAAC,UAAU;IA4BlB,OAAO,CAAC,wBAAwB;IA2ChC,OAAO,CAAC,aAAa;IAmBrB,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,YAAY;IAYpB,OAAO,CAAC,WAAW;CAWpB;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,YAAY,CAE/E"}
@@ -12,6 +12,7 @@ import { createBrowserFileLockChannel, sharedBrowserFileLockCoordinator, } from
12
12
  import { createBrowserFileCoherenceChannel, sharedBrowserFileCoherenceCoordinator, } from "@volter/browser-runtime/browser-file-coherence.js";
13
13
  import { currentEntry, patchWithContent, ProcessFilesystemBase } from "@volter/browser-runtime/browser-process-filesystem.js";
14
14
  import { pageWorker } from "@volter/browser-runtime/page-workers.js";
15
+ import { createWaliWaitAgent, WaliWaitTable, waliWaitOwner } from "./wait-state.js";
15
16
  /** Runs one unchanged WALI executable off the UI thread while retaining its compiled module. */
16
17
  /**
17
18
  * Each program's module, compiled by the first worker that ran it, for every
@@ -93,6 +94,7 @@ export class BrowserWaliWorkerProgram {
93
94
  traceId = crypto.randomUUID();
94
95
  preparing = false;
95
96
  applyingFilesystem = false;
97
+ waitOwner;
96
98
  constructor(filesystem, program) {
97
99
  this.filesystem = filesystem;
98
100
  this.program = program;
@@ -110,6 +112,25 @@ export class BrowserWaliWorkerProgram {
110
112
  throw new Error("The browser WALI program is already running.");
111
113
  if (options.signal?.aborted)
112
114
  throw options.signal.reason;
115
+ this.waitOwner = options[waliWaitOwner] ?? (() => {
116
+ const agent = createWaliWaitAgent(options[browserProcessLineage]?.pid ?? 1);
117
+ const table = new WaliWaitTable(report => {
118
+ const pending = this.pending;
119
+ if (!pending)
120
+ return;
121
+ try {
122
+ pending.options.onHang?.(report);
123
+ pending.options.onDiagnostic?.(`[WALI hang] ${JSON.stringify(report)}`);
124
+ }
125
+ finally {
126
+ pending.resolve({ exitCode: 1, stdout: pending.stdout, stderr: pending.stderr, hangReport: report });
127
+ this.finishPending();
128
+ this.resetWorker();
129
+ }
130
+ });
131
+ table.add(agent);
132
+ return { agent, table };
133
+ })();
113
134
  // Started here so its boot overlaps the run's preparation.
114
135
  this.worker ??= this.createWorker();
115
136
  this.preparing = true;
@@ -262,7 +283,9 @@ export class BrowserWaliWorkerProgram {
262
283
  resolveFilesystemFinalization,
263
284
  };
264
285
  const request = {
286
+ ...(this.waitOwner ? { waitAgent: this.waitOwner.agent } : {}),
265
287
  type: "run",
288
+ ...(this.program.onSyscallTrace ? { traceSyscalls: true } : {}),
266
289
  // A program the lane exec'd into an existing process runs AS that
267
290
  // process: it takes its pid, the parent it kept, and the counter its
268
291
  // own children are numbered from. A run that is not an exec carries
@@ -331,6 +354,10 @@ export class BrowserWaliWorkerProgram {
331
354
  const active = this.pending;
332
355
  if (!active || active.id !== id)
333
356
  return;
357
+ if (event.data.type === "wait-state") {
358
+ this.waitOwner?.table.update(event.data.update);
359
+ return;
360
+ }
334
361
  if (event.data.type === "error") {
335
362
  this.emitStderr(active, `\nWALI pthread ${event.data.tid ?? "unknown"} error: ${event.data.message}\n`);
336
363
  return;
@@ -345,7 +372,7 @@ export class BrowserWaliWorkerProgram {
345
372
  this.emitStderr(active, new TextDecoder().decode(event.data.bytes));
346
373
  }
347
374
  finally {
348
- if (event.data.type !== "error" && event.data.type !== "diagnostic" && event.data.ack) {
375
+ if (event.data.type !== "error" && event.data.type !== "diagnostic" && event.data.type !== "wait-state" && event.data.ack) {
349
376
  const ack = new Int32Array(event.data.ack);
350
377
  Atomics.store(ack, 0, 1);
351
378
  Atomics.notify(ack, 0);
@@ -484,7 +511,7 @@ export class BrowserWaliWorkerProgram {
484
511
  terminate() {
485
512
  this.pending?.reject(new DOMException("The WALI program was terminated.", "AbortError"));
486
513
  this.finishPending();
487
- this.worker?.terminate();
514
+ this.resetWorker();
488
515
  }
489
516
  createWorker() {
490
517
  const worker = pageWorker(new Worker(new URL("./worker-program-worker.js", import.meta.url), {
@@ -492,7 +519,11 @@ export class BrowserWaliWorkerProgram {
492
519
  name: "browser-wali-program",
493
520
  }));
494
521
  worker.addEventListener("message", (event) => {
522
+ if (this.worker !== worker)
523
+ return;
495
524
  void this.handleMessage(event.data).catch((cause) => {
525
+ if (this.worker !== worker)
526
+ return;
496
527
  if (this.pending?.id !== event.data.id)
497
528
  return;
498
529
  this.pending.reject(cause);
@@ -501,6 +532,8 @@ export class BrowserWaliWorkerProgram {
501
532
  });
502
533
  });
503
534
  worker.addEventListener("error", (event) => {
535
+ if (this.worker !== worker)
536
+ return;
504
537
  this.pending?.reject(event.error ?? new Error(event.message));
505
538
  this.finishPending();
506
539
  this.resetWorker();
@@ -517,6 +550,14 @@ export class BrowserWaliWorkerProgram {
517
550
  const pending = this.pending;
518
551
  if (!pending || message.id !== pending.id)
519
552
  return;
553
+ if (message.type === "wait-state") {
554
+ this.waitOwner?.table.update(message.update);
555
+ return;
556
+ }
557
+ if (message.type === "syscall-trace") {
558
+ this.program.onSyscallTrace?.(message.entry);
559
+ return;
560
+ }
520
561
  if (message.type === "stdout") {
521
562
  this.emitStdout(pending, message.chunk);
522
563
  return;
@@ -584,10 +625,15 @@ export class BrowserWaliWorkerProgram {
584
625
  }
585
626
  }
586
627
  forkChild(message) {
628
+ const agent = createWaliWaitAgent(message.pid, false, undefined, this.waitOwner?.agent.activity);
629
+ const table = this.waitOwner?.table;
630
+ table?.add(agent);
587
631
  const worker = pageWorker(new Worker(new URL("./fork-worker.js", import.meta.url), { type: "module", name: `wali-fork-${message.pid}` }));
588
632
  this.forkWorkers.set(message.pid, worker);
589
- const finish = () => { worker.terminate(); this.forkWorkers.delete(message.pid); };
633
+ const finish = () => { worker.terminate(); this.forkWorkers.delete(message.pid); table?.removeImage(agent.image); };
590
634
  worker.addEventListener("message", (event) => {
635
+ if (this.forkWorkers.get(message.pid) !== worker)
636
+ return;
591
637
  if (event.data.type === "fork-done") {
592
638
  finish();
593
639
  return;
@@ -599,14 +645,23 @@ export class BrowserWaliWorkerProgram {
599
645
  });
600
646
  });
601
647
  worker.addEventListener("error", event => {
648
+ if (this.forkWorkers.get(message.pid) !== worker)
649
+ return;
602
650
  this.pending?.reject(event.error ?? new Error(event.message));
603
651
  this.finishPending();
604
652
  this.resetWorker();
605
653
  });
606
- worker.postMessage(message, [message.descriptorTable.port,
654
+ worker.postMessage({ ...message, waitAgent: agent }, [message.descriptorTable.port,
607
655
  ...(message.descriptorTable.releasePort ? [message.descriptorTable.releasePort] : []), message.forkState.memory]);
608
656
  }
609
657
  async spawnChild(message, pending) {
658
+ const table = this.waitOwner?.table;
659
+ const agent = createWaliWaitAgent(message.pid, false, undefined, this.waitOwner?.agent.activity);
660
+ table?.add(agent);
661
+ // Exec changes the guest image, not its pid. The old root can still
662
+ // service descriptors, but it is no longer a live guest agent.
663
+ if (message.descriptorTable)
664
+ table?.retireProcessImage(message.pid, agent.key);
610
665
  const backend = this.program.spawn;
611
666
  const controller = new AbortController();
612
667
  this.childControllers.set(message.pid, controller);
@@ -694,6 +749,7 @@ export class BrowserWaliWorkerProgram {
694
749
  const stdinStream = message.stdin ? streamBrowserPipe(message.stdin, controller.signal) : undefined;
695
750
  const spawned = browserCommand(message);
696
751
  const result = await backend.run(spawned.command, {
752
+ ...(table ? { [waliWaitOwner]: { table, agent } } : {}),
697
753
  [browserProcessLineage]: { pid: message.pid, parentPid: message.parentPid, childPidAllocator: message.childPidAllocator },
698
754
  ...(filesystemPolicy ? { filesystemPolicy } : {}),
699
755
  ...(descriptorTable ? { descriptorTable } : {}),
@@ -726,6 +782,7 @@ export class BrowserWaliWorkerProgram {
726
782
  encodeProcessPatch(message, await patchAgainst(childFilesystem), controller.signal.aborted ? 130 : 127);
727
783
  }
728
784
  finally {
785
+ table?.removeImage(agent.image);
729
786
  controller.abort(new DOMException("Browser child process completed.", "AbortError"));
730
787
  this.childControllers.delete(message.pid);
731
788
  closeExternalPipe(message.stdin);
@@ -911,6 +968,7 @@ export class BrowserWaliWorkerProgram {
911
968
  this.pending?.releaseFileCoherence();
912
969
  this.pending?.releaseFilesystemChanges();
913
970
  this.pending = undefined;
971
+ this.waitOwner = undefined;
914
972
  this.stdin?.close();
915
973
  this.stdin = undefined;
916
974
  for (const port of this.processPorts)
@@ -956,8 +1014,11 @@ export class BrowserWaliWorkerProgram {
956
1014
  for (const controller of this.childControllers.values())
957
1015
  controller.abort();
958
1016
  this.childControllers.clear();
959
- this.worker?.terminate();
960
- this.worker = this.createWorker();
1017
+ // A retained program object must not retain its retired worker realm.
1018
+ // The next run starts lazily; late events are rejected by createWorker.
1019
+ const worker = this.worker;
1020
+ this.worker = undefined;
1021
+ worker?.terminate();
961
1022
  }
962
1023
  }
963
1024
  /**