@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.
- package/dist/capabilities.d.ts +1 -1
- package/dist/capabilities.d.ts.map +1 -1
- package/dist/capabilities.js +2 -2
- package/dist/capabilities.js.map +1 -1
- package/dist/child-processes.d.ts +1 -1
- package/dist/child-processes.d.ts.map +1 -1
- package/dist/child-processes.js +3 -2
- package/dist/child-processes.js.map +1 -1
- package/dist/filesystem-host.d.ts +1 -0
- package/dist/filesystem-host.d.ts.map +1 -1
- package/dist/filesystem-host.js +36 -9
- package/dist/filesystem-host.js.map +1 -1
- package/dist/fork-worker.js +7 -0
- package/dist/fork-worker.js.map +1 -1
- package/dist/host-idle.d.ts +2 -1
- package/dist/host-idle.d.ts.map +1 -1
- package/dist/host-idle.js +19 -4
- package/dist/host-idle.js.map +1 -1
- package/dist/jumps.d.ts +68 -0
- package/dist/jumps.d.ts.map +1 -0
- package/dist/jumps.js +216 -0
- package/dist/jumps.js.map +1 -0
- package/dist/memory.d.ts.map +1 -1
- package/dist/memory.js +36 -20
- package/dist/memory.js.map +1 -1
- package/dist/network-protocol.d.ts +4 -0
- package/dist/network-protocol.d.ts.map +1 -1
- package/dist/network-worker.js +49 -11
- package/dist/network-worker.js.map +1 -1
- package/dist/network.d.ts +4 -3
- package/dist/network.d.ts.map +1 -1
- package/dist/network.js +28 -6
- package/dist/network.js.map +1 -1
- package/dist/process-bridge.d.ts +2 -0
- package/dist/process-bridge.d.ts.map +1 -1
- package/dist/process-bridge.js +4 -2
- package/dist/process-bridge.js.map +1 -1
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +72 -11
- package/dist/runtime.js.map +1 -1
- package/dist/signals.d.ts +1 -0
- package/dist/signals.d.ts.map +1 -1
- package/dist/signals.js +9 -1
- package/dist/signals.js.map +1 -1
- package/dist/stdin.d.ts +2 -0
- package/dist/stdin.d.ts.map +1 -1
- package/dist/stdin.js +7 -2
- package/dist/stdin.js.map +1 -1
- package/dist/syscall-trace.d.ts +13 -0
- package/dist/syscall-trace.d.ts.map +1 -0
- package/dist/syscall-trace.js +20 -0
- package/dist/syscall-trace.js.map +1 -0
- package/dist/system.d.ts +3 -3
- package/dist/system.d.ts.map +1 -1
- package/dist/system.js +15 -12
- package/dist/system.js.map +1 -1
- package/dist/thread-coordinator-worker.js +5 -1
- package/dist/thread-coordinator-worker.js.map +1 -1
- package/dist/thread-worker.js +10 -2
- package/dist/thread-worker.js.map +1 -1
- package/dist/threads.d.ts +3 -0
- package/dist/threads.d.ts.map +1 -1
- package/dist/threads.js +9 -1
- package/dist/threads.js.map +1 -1
- package/dist/types.d.ts +2 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/wait-state.d.ts +76 -0
- package/dist/wait-state.d.ts.map +1 -0
- package/dist/wait-state.js +156 -0
- package/dist/wait-state.js.map +1 -0
- package/dist/worker-program-protocol.d.ts +16 -2
- package/dist/worker-program-protocol.d.ts.map +1 -1
- package/dist/worker-program-worker.js +7 -0
- package/dist/worker-program-worker.js.map +1 -1
- package/dist/worker-program.d.ts +5 -1
- package/dist/worker-program.d.ts.map +1 -1
- package/dist/worker-program.js +67 -6
- package/dist/worker-program.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wait-state.d.ts","sourceRoot":"","sources":["../src/wait-state.ts"],"names":[],"mappings":"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"}
|
|
@@ -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":"AAEA,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;AAuBnE,MAAM,UAAU,mBAAmB,CAAC,GAAW,EAAE,OAAO,GAAG,KAAK,EAAE,KAAc,EAAE,QAAQ,GAAG,IAAI,iBAAiB,CAAC,CAAC,CAAC;IACnH,MAAM,KAAK,GAAG,IAAI,iBAAiB,CAAC,CAAC,GAAG,UAAU,CAAC,iBAAiB,CAAC,CAAC;IACtE,OAAO,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzD,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;IAChC,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,IAAI,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;AAC5D,CAAC;AACD,MAAM,UAAU,kBAAkB,CAAC,KAAoB,EAAE,GAAW;IAClE,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC1C,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACzB,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;IAC7B,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3B,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC3B,CAAC;AAED,IAAI,SAAwC,CAAC;AAC7C,MAAM,UAAU,oBAAoB,CAAC,KAAoC,IAAU,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC;AACvG,MAAM,UAAU,iBAAiB;IAC/B,IAAI,CAAC,SAAS;QAAE,OAAO,EAAE,CAAC;IAC1B,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACvD,OAAO,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AAC9D,CAAC;AACD,MAAM,UAAU,QAAQ,CAAI,IAAY,EAAE,SAAkB,EAAE,OAAqC,EAAE;IACnG,OAAO,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;AACzE,CAAC;AACD,MAAM,UAAU,QAAQ,CAAI,KAAiB,EAAE,KAAa,EAAE,KAAa,EAAE,MAAkC,EAAE,SAAkB;IACjI,IAAI,CAAC,SAAS;QAAE,OAAO,SAAS,EAAE,CAAC;IACnC,OAAO,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,EAAE;QACvG,CAAC,CAAC,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;YAC7E,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,+BAA+B,EAAE,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;AAC3E,CAAC;AAED,sFAAsF;AACtF,MAAM,OAAO,iBAAiB;IAKP;IAAuC;IACzC;IALX,IAAI,GAAG,OAAO,CAAC;IACf,IAAI,GAAiC,EAAE,CAAC;IAC/B,KAAK,CAAa;IAClB,QAAQ,CAAa;IACtC,YAAqB,KAAoB,EAAmB,IAAsC,EAC/E,aAAmC,GAAG,EAAE,CAAC,EAAE;QADzC,UAAK,GAAL,KAAK,CAAe;QAAmB,SAAI,GAAJ,IAAI,CAAkC;QAC/E,eAAU,GAAV,UAAU,CAAiC;QAC5D,IAAI,CAAC,KAAK,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACzC,IAAI,CAAC,QAAQ,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACjD,CAAC;IACD,QAAQ,KAAW,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/D,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,IAAU,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzF,MAAM,KAAW,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACnC,IAAI,CAAI,IAAY,EAAE,SAAkB,EAAE,OAAqC,EAAE;QAC/E,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;QAC3B,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5B,IAAI,CAAC;YAAC,OAAO,SAAS,EAAE,CAAC;QAAC,CAAC;gBAAS,CAAC;YAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;YAAC,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;QAAC,CAAC;IACtH,CAAC;IACD,IAAI,CAAI,MAAsB,EAAE,SAAkB;QAChD,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC;QACzF,IAAI,CAAC;YAAC,OAAO,SAAS,EAAE,CAAC;QAAC,CAAC;gBAAS,CAAC;YAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAAC,CAAC;IAC1D,CAAC;IACO,OAAO,CAAC,KAAa,EAAE,MAAuB;QACpD,wEAAwE;QACxE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9B,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;QACpC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;QACnD,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI;YACpH,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACrC,CAAC;CACF;AAED,uDAAuD;AACvD,MAAM,OAAO,aAAa;IAIK;IAHZ,IAAI,GAAG,IAAI,GAAG,EAA6D,CAAC;IACrF,QAAQ,GAAG,KAAK,CAAC;IACR,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAC7C,YAA6B,IAAgD;QAAhD,SAAI,GAAJ,IAAI,CAA4C;IAAG,CAAC;IACjF,GAAG,CAAC,KAAoB,IAAU,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;IACxE,MAAM,CAAC,KAAoB,IAAU,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAChG,WAAW,CAAC,KAAa;QACvB,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAAE,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,KAAK,KAAK;gBAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC9F,CAAC;IACD,kBAAkB,CAAC,GAAW,EAAE,WAAmB;QACjD,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAAE,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,KAAK,WAAW;gBAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC3H,CAAC;IACD,MAAM,CAAC,MAAsB;QAC3B,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;YAAE,OAAO;QAC/C,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC5C,IAAI,CAAC,GAAG;YAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;;YACtE,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC;QACzB,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IACO,OAAO;QACb,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC1B,MAAM,IAAI,GAAmD,EAAE,CAAC;QAChE,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;YACrC,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACjF,IAAI,QAAQ,GAAG,CAAC;gBAAE,OAAO;YACzB,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACrC,IAAI,KAAK,KAAK,CAAC;gBAAE,SAAS;YAC1B,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;YAC1B,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,IAAI,QAAQ,KAAK,MAAM,CAAC,QAAQ;gBAAE,OAAO;YAC3E,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;gBAAE,OAAO;YACtE,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QACrD,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO;QACzB,KAAK,MAAM,EAAE,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC;YAC9B,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACjD,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC;mBACzE,CAAC,MAAM,CAAC,MAAM,CAAC,MAAO,CAAC;gBAAE,OAAO;QACvC,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACvE,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG;gBACpE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IAClF,CAAC;CACF;AACD,SAAS,KAAK,CAAC,IAAkB,IAAa,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AAC3G,SAAS,MAAM,CAAC,MAAsB;IACpC,OAAO,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC;WACpC,CAAC,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AACtF,CAAC;AAID,8EAA8E;AAC9E,2EAA2E"}
|
|
@@ -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":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,+CAA+C,CAAC;AAC/F,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,+CAA+C,CAAC;AAC5F,OAAO,KAAK,EAAE,6BAA6B,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAElG,MAAM,WAAW,oBAAoB;IACnC,SAAS,CAAC,EAAE,OAAO,iBAAiB,EAAE,aAAa,CAAC;IACpD,eAAe,CAAC,EAAE,OAAO,0BAA0B,EAAE,qBAAqB,CAAC;IAC3E,IAAI,EAAE,KAAK,CAAC;IACZ,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,iFAAiF;IACjF,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iFAAiF;IACjF,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yHAAyH;IACzH,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IAC9B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,4EAA4E;IAC5E,KAAK,CAAC,EAAE;QAAE,OAAO,EAAE,CAAC,CAAA;KAAE,CAAC;IACvB,4BAA4B,CAAC,EAAE,CAAC,CAAC;IACjC,gBAAgB,CAAC,EAAE,OAAO,8DAA8D,EAAE,8BAA8B,CAAC;IACzH,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,EAAE,CAAC;QAAC,cAAc,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAClG,YAAY,CAAC,EAAE,WAAW,CAAC;IAC3B,KAAK,EAAE,iBAAiB,CAAC;IACzB,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,yBAAyB,CAAC;IACtC,sIAAsI;IACtI,KAAK,CAAC,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9B,0IAA0I;IAC1I,MAAM,CAAC,EAAE,OAAO,wBAAwB,EAAE,eAAe,EAAE,CAAC;IAC5D,8FAA8F;IAC9F,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,oBAAoB,CAAC,EAAE,WAAW,CAAC;IACnC,SAAS,EAAE;QAAE,OAAO,EAAE,sBAAsB,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9D,aAAa,EAAE,OAAO,mDAAmD,EAAE,2BAA2B,CAAC;IACvG,6EAA6E;IAC7E,WAAW,EAAE,iBAAiB,CAAC;IAC/B,mBAAmB,CAAC,EAAE,WAAW,EAAE,CAAC;IACpC,iBAAiB,CAAC,EAAE,WAAW,EAAE,CAAC;CACnC;AAED,MAAM,MAAM,uBAAuB,GAC/B;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,MAAM,EAAE,OAAO,iBAAiB,EAAE,cAAc,CAAA;CAAE,GACxE;IAAE,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAAC,KAAK,EAAE,UAAU,CAAC;IAAC,GAAG,CAAC,EAAE,iBAAiB,CAAA;CAAE,GACzE;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE;AAClD,2FAA2F;GACzF;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1D,MAAM,MAAM,iBAAiB,GAAG,oBAAoB,CAAC;AAErD,yFAAyF;AACzF,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC;IAC3B,MAAM,CAAC,EAAE,OAAO,oBAAoB,EAAE,gBAAgB,CAAC;CACxD;AAED,MAAM,MAAM,kBAAkB,GAC1B;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,iBAAiB,EAAE,cAAc,CAAA;CAAE;AACtF,+FAA+F;GAC7F;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,kBAAkB,CAAA;CAAE,GAC9D,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,iBAAiB,CAAC;IAAC,cAAc,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,oBAAoB,CAAC,SAAS,CAAC,CAAA;CAAE,GAAG,OAAO,qBAAqB,EAAE,sBAAsB,CAAC,GAC3M;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,oBAAoB,EAAE,gBAAgB,CAAA;CAAE,GAC3F;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,UAAU,CAAA;CAAE,GACjD;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE;AAC/C,wEAAwE;GACtE;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACnD,CAAC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAAG,uBAAuB,CAAC,GACzD;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACzD;IACE,IAAI,EAAE,QAAQ,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,yBAAyB,CAAC;IACtC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,MAAM,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9D,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEN,MAAM,MAAM,2BAA2B,GAAG;IACxC,IAAI,EAAE,YAAY,CAAC;IACnB,KAAK,EAAE,6BAA6B,CAAC;CACtC,GAAG;IACF,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,6BAA6B,CAAC;CACtC,GAAG;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,OAAO,EAAE,iBAAiB,CAAA;CAAE;AACxH;;;;;GAKG;GACD;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,iBAAiB,CAAC;IAAC,QAAQ,EAAE,iBAAiB,CAAA;CAAE;AAC7E;;;;GAIG;GACD;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAE3C,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,6BAA6B,CAAC;IACrC,IAAI,EAAE,yBAAyB,CAAC;IAChC,8GAA8G;IAC9G,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB"}
|
|
@@ -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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"}
|
package/dist/worker-program.d.ts
CHANGED
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"worker-program.d.ts","sourceRoot":"","sources":["../src/worker-program.ts"],"names":[],"mappings":"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"}
|
package/dist/worker-program.js
CHANGED
|
@@ -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.
|
|
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
|
-
|
|
960
|
-
|
|
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
|
/**
|