@volter/browser-wali 0.1.10 → 0.1.11
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/bulk-memory.d.ts +23 -0
- package/dist/bulk-memory.d.ts.map +1 -0
- package/dist/bulk-memory.js +50 -0
- package/dist/bulk-memory.js.map +1 -0
- package/dist/coherent-file-locks.d.ts +4 -1
- package/dist/coherent-file-locks.d.ts.map +1 -1
- package/dist/coherent-file-locks.js +24 -1
- package/dist/coherent-file-locks.js.map +1 -1
- package/dist/descriptors.d.ts +18 -1
- package/dist/descriptors.d.ts.map +1 -1
- package/dist/descriptors.js +51 -6
- package/dist/descriptors.js.map +1 -1
- package/dist/filesystem-host.d.ts +81 -0
- package/dist/filesystem-host.d.ts.map +1 -0
- package/dist/filesystem-host.js +849 -0
- package/dist/filesystem-host.js.map +1 -0
- package/dist/filesystem-protocol.d.ts +49 -1
- package/dist/filesystem-protocol.d.ts.map +1 -1
- package/dist/filesystem-protocol.js +17 -0
- package/dist/filesystem-protocol.js.map +1 -1
- package/dist/filesystem-remote.d.ts +72 -18
- package/dist/filesystem-remote.d.ts.map +1 -1
- package/dist/filesystem-remote.js +271 -40
- package/dist/filesystem-remote.js.map +1 -1
- package/dist/filesystem-worker.js +8 -502
- package/dist/filesystem-worker.js.map +1 -1
- package/dist/filesystem.d.ts +9 -0
- package/dist/filesystem.d.ts.map +1 -1
- package/dist/filesystem.js +209 -61
- package/dist/filesystem.js.map +1 -1
- package/dist/host-idle.d.ts +29 -0
- package/dist/host-idle.d.ts.map +1 -0
- package/dist/host-idle.js +68 -0
- package/dist/host-idle.js.map +1 -0
- package/dist/host.d.ts +1 -0
- package/dist/host.d.ts.map +1 -1
- package/dist/host.js +1 -3
- package/dist/host.js.map +1 -1
- package/dist/memory.d.ts.map +1 -1
- package/dist/memory.js +79 -18
- package/dist/memory.js.map +1 -1
- package/dist/module-layout.d.ts +6 -0
- package/dist/module-layout.d.ts.map +1 -1
- package/dist/module-layout.js +26 -3
- package/dist/module-layout.js.map +1 -1
- package/dist/monotonic-clock.d.ts +9 -0
- package/dist/monotonic-clock.d.ts.map +1 -1
- package/dist/monotonic-clock.js +11 -0
- package/dist/monotonic-clock.js.map +1 -1
- package/dist/network-worker.js +7 -2
- package/dist/network-worker.js.map +1 -1
- package/dist/network.d.ts.map +1 -1
- package/dist/network.js +11 -8
- package/dist/network.js.map +1 -1
- package/dist/process-bridge.d.ts.map +1 -1
- package/dist/process-bridge.js +25 -5
- package/dist/process-bridge.js.map +1 -1
- package/dist/program.d.ts +5 -1
- package/dist/program.d.ts.map +1 -1
- package/dist/program.js +13 -12
- package/dist/program.js.map +1 -1
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +75 -9
- package/dist/runtime.js.map +1 -1
- package/dist/shared-file-layer.d.ts +69 -0
- package/dist/shared-file-layer.d.ts.map +1 -0
- package/dist/shared-file-layer.js +299 -0
- package/dist/shared-file-layer.js.map +1 -0
- package/dist/shared-pipes.d.ts +7 -0
- package/dist/shared-pipes.d.ts.map +1 -1
- package/dist/shared-pipes.js +56 -17
- package/dist/shared-pipes.js.map +1 -1
- package/dist/signals.d.ts +2 -0
- package/dist/signals.d.ts.map +1 -1
- package/dist/signals.js +5 -1
- package/dist/signals.js.map +1 -1
- package/dist/snapshot-filesystem.d.ts +36 -3
- package/dist/snapshot-filesystem.d.ts.map +1 -1
- package/dist/snapshot-filesystem.js +204 -19
- package/dist/snapshot-filesystem.js.map +1 -1
- package/dist/stdin.d.ts.map +1 -1
- package/dist/stdin.js +3 -2
- package/dist/stdin.js.map +1 -1
- package/dist/symlink.d.ts.map +1 -1
- package/dist/symlink.js +91 -1
- package/dist/symlink.js.map +1 -1
- package/dist/system.d.ts.map +1 -1
- package/dist/system.js +17 -6
- package/dist/system.js.map +1 -1
- package/dist/thread-coordinator-worker.d.ts +1 -25
- package/dist/thread-coordinator-worker.d.ts.map +1 -1
- package/dist/thread-coordinator-worker.js +29 -2
- package/dist/thread-coordinator-worker.js.map +1 -1
- package/dist/thread-worker.js +13 -8
- package/dist/thread-worker.js.map +1 -1
- package/dist/threads.d.ts +4 -0
- package/dist/threads.d.ts.map +1 -1
- package/dist/threads.js +72 -43
- package/dist/threads.js.map +1 -1
- package/dist/types.d.ts +10 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/websocket-peer.d.ts.map +1 -1
- package/dist/websocket-peer.js +2 -1
- package/dist/websocket-peer.js.map +1 -1
- package/dist/worker-program-protocol.d.ts +26 -0
- package/dist/worker-program-protocol.d.ts.map +1 -1
- package/dist/worker-program-worker.js +26 -8
- package/dist/worker-program-worker.js.map +1 -1
- package/dist/worker-program.d.ts +43 -0
- package/dist/worker-program.d.ts.map +1 -1
- package/dist/worker-program.js +198 -24
- package/dist/worker-program.js.map +1 -1
- package/package.json +1 -1
package/dist/memory.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { bulkMemory } from "./bulk-memory.js";
|
|
1
2
|
const EINVAL = 22n;
|
|
2
3
|
const ENOMEM = 12n;
|
|
3
4
|
const ENODEV = 19n;
|
|
@@ -54,6 +55,53 @@ const REGISTRY_OFFSET_HIGH = 4;
|
|
|
54
55
|
const REGISTRY_SIZE = 5;
|
|
55
56
|
const REGISTRY_START = 6;
|
|
56
57
|
const REGISTRY_REFERENCES = 7;
|
|
58
|
+
/**
|
|
59
|
+
* A thread's mappings, found by where they start (2026-09-27). `munmap` found
|
|
60
|
+
* its mapping by walking every one the thread held, and mallocng maps and
|
|
61
|
+
* unmaps each group of a large heap: that walk was most of what freeing cost
|
|
62
|
+
* while Blender read and wrote `.blend` files. A mapping unmapped whole starts
|
|
63
|
+
* where the unmap does; any other range is looked for as before.
|
|
64
|
+
*/
|
|
65
|
+
class MappingTable {
|
|
66
|
+
all = new Set();
|
|
67
|
+
byStart = new Map();
|
|
68
|
+
add(mapping) { this.all.add(mapping); this.byStart.set(mapping.start, mapping); }
|
|
69
|
+
remove(mapping) {
|
|
70
|
+
this.all.delete(mapping);
|
|
71
|
+
if (this.byStart.get(mapping.start) === mapping)
|
|
72
|
+
this.byStart.delete(mapping.start);
|
|
73
|
+
}
|
|
74
|
+
moveStart(mapping, start) {
|
|
75
|
+
if (this.byStart.get(mapping.start) === mapping)
|
|
76
|
+
this.byStart.delete(mapping.start);
|
|
77
|
+
mapping.start = start;
|
|
78
|
+
if (this.all.has(mapping))
|
|
79
|
+
this.byStart.set(start, mapping);
|
|
80
|
+
}
|
|
81
|
+
startingAt(start) {
|
|
82
|
+
const mapping = this.byStart.get(start);
|
|
83
|
+
return mapping && mapping.start === start && this.all.has(mapping) ? mapping : undefined;
|
|
84
|
+
}
|
|
85
|
+
/** The mapping holding [start, end). */
|
|
86
|
+
containing(start, end) {
|
|
87
|
+
const starting = this.startingAt(start);
|
|
88
|
+
if (starting && end <= starting.end)
|
|
89
|
+
return starting;
|
|
90
|
+
for (const mapping of this.all)
|
|
91
|
+
if (start >= mapping.start && end <= mapping.end)
|
|
92
|
+
return mapping;
|
|
93
|
+
return undefined;
|
|
94
|
+
}
|
|
95
|
+
find(test) {
|
|
96
|
+
for (const mapping of this.all)
|
|
97
|
+
if (test(mapping))
|
|
98
|
+
return mapping;
|
|
99
|
+
return undefined;
|
|
100
|
+
}
|
|
101
|
+
some(test) { return this.find(test) !== undefined; }
|
|
102
|
+
map(project) { return [...this.all].map(project); }
|
|
103
|
+
[Symbol.iterator]() { return this.all.values(); }
|
|
104
|
+
}
|
|
57
105
|
export function createWaliSharedMmapRegistry() {
|
|
58
106
|
return new SharedArrayBuffer(Int32Array.BYTES_PER_ELEMENT
|
|
59
107
|
* (SHARED_MMAP_REGISTRY_HEADER_WORDS + SHARED_MMAP_REGISTRY_SLOTS * SHARED_MMAP_REGISTRY_WORDS));
|
|
@@ -67,7 +115,7 @@ export class WaliMemoryManager {
|
|
|
67
115
|
fileKey;
|
|
68
116
|
writeSharedFile;
|
|
69
117
|
report;
|
|
70
|
-
mappings =
|
|
118
|
+
mappings = new MappingTable();
|
|
71
119
|
allocatorState;
|
|
72
120
|
allocatorInitialized = false;
|
|
73
121
|
constructor(memory, readFile, sharedMmapCursor, fileKey, writeSharedFile, sharedMmapRegistry, report) {
|
|
@@ -97,7 +145,8 @@ export class WaliMemoryManager {
|
|
|
97
145
|
...(this.sharedRegistry ? { registry: this.sharedRegistry.buffer.slice(0) } : {}) };
|
|
98
146
|
}
|
|
99
147
|
restoreFork(snapshot) {
|
|
100
|
-
|
|
148
|
+
for (const mapping of snapshot.mappings)
|
|
149
|
+
this.mappings.add({ ...mapping });
|
|
101
150
|
if (snapshot.registry && this.sharedRegistry)
|
|
102
151
|
this.sharedRegistry.set(new Int32Array(snapshot.registry));
|
|
103
152
|
}
|
|
@@ -183,7 +232,7 @@ export class WaliMemoryManager {
|
|
|
183
232
|
this.release(start, end);
|
|
184
233
|
return -ENOMEM;
|
|
185
234
|
}
|
|
186
|
-
this.mappings.
|
|
235
|
+
this.mappings.add({
|
|
187
236
|
start, end, protection, fixed, ...(fileKey ? { fileKey } : {}),
|
|
188
237
|
fileOffset: offset, shared, references: 1,
|
|
189
238
|
...(registryClaim ? { registrySlot: registryClaim.slot } : {}),
|
|
@@ -199,7 +248,7 @@ export class WaliMemoryManager {
|
|
|
199
248
|
if (!validPageRange(address, length))
|
|
200
249
|
return -EINVAL;
|
|
201
250
|
const end = address + length;
|
|
202
|
-
const mapping = this.mappings.
|
|
251
|
+
const mapping = this.mappings.containing(address, end);
|
|
203
252
|
if (mapping)
|
|
204
253
|
mapping.protection = protection;
|
|
205
254
|
else if (end > this.memory().buffer.byteLength)
|
|
@@ -210,8 +259,7 @@ export class WaliMemoryManager {
|
|
|
210
259
|
if (!validPageRange(address, length))
|
|
211
260
|
return -EINVAL;
|
|
212
261
|
const end = address + align(length, LINUX_PAGE_SIZE);
|
|
213
|
-
const
|
|
214
|
-
const mapping = index >= 0 ? this.mappings[index] : undefined;
|
|
262
|
+
const mapping = this.mappings.containing(address, end);
|
|
215
263
|
// Mapping metadata is local to a syscall host, but a Unix process may
|
|
216
264
|
// mmap on one pthread and munmap on another: mallocng frees a >=128 KiB
|
|
217
265
|
// chunk on whichever thread calls free(), and unmaps it there. The
|
|
@@ -236,7 +284,7 @@ export class WaliMemoryManager {
|
|
|
236
284
|
if (!this.flushMapping(mapping, address, end))
|
|
237
285
|
return -EIO;
|
|
238
286
|
this.releaseSharedMapping(mapping.registrySlot);
|
|
239
|
-
this.mappings.
|
|
287
|
+
this.mappings.remove(mapping);
|
|
240
288
|
return 0n;
|
|
241
289
|
}
|
|
242
290
|
if (mapping.shared && mapping.references > 1) {
|
|
@@ -248,17 +296,17 @@ export class WaliMemoryManager {
|
|
|
248
296
|
// A partial unmap keeps the remainder on record, so a later unmap of the
|
|
249
297
|
// rest is still this thread's own mapping and not an unknown range.
|
|
250
298
|
if (address === mapping.start && end === mapping.end) {
|
|
251
|
-
this.mappings.
|
|
299
|
+
this.mappings.remove(mapping);
|
|
252
300
|
}
|
|
253
301
|
else if (address === mapping.start) {
|
|
254
302
|
mapping.fileOffset += end - mapping.start;
|
|
255
|
-
mapping
|
|
303
|
+
this.mappings.moveStart(mapping, end);
|
|
256
304
|
}
|
|
257
305
|
else if (end === mapping.end) {
|
|
258
306
|
mapping.end = address;
|
|
259
307
|
}
|
|
260
308
|
else {
|
|
261
|
-
this.mappings.
|
|
309
|
+
this.mappings.add({ ...mapping, start: end, fileOffset: mapping.fileOffset + (end - mapping.start) });
|
|
262
310
|
mapping.end = address;
|
|
263
311
|
}
|
|
264
312
|
// No zeroing here: the next mmap of these bytes zeroes them (`zeroForHandout`),
|
|
@@ -294,6 +342,12 @@ export class WaliMemoryManager {
|
|
|
294
342
|
}
|
|
295
343
|
}
|
|
296
344
|
zero(start, end) {
|
|
345
|
+
// The memory's own memory.fill, where it compiles: 5.7x the typed-array fill (bulk-memory.ts).
|
|
346
|
+
const bulk = bulkMemory(this.memory());
|
|
347
|
+
if (bulk) {
|
|
348
|
+
bulk.fill(start, 0, end - start);
|
|
349
|
+
return;
|
|
350
|
+
}
|
|
297
351
|
const buffer = this.memory().buffer;
|
|
298
352
|
const bytes = new Uint8Array(buffer);
|
|
299
353
|
const bodyStart = (start + 7) & ~7;
|
|
@@ -340,7 +394,8 @@ export class WaliMemoryManager {
|
|
|
340
394
|
return -EINVAL;
|
|
341
395
|
const oldSize = align(oldLength, LINUX_PAGE_SIZE);
|
|
342
396
|
const newSize = align(newLength, LINUX_PAGE_SIZE);
|
|
343
|
-
const
|
|
397
|
+
const starting = this.mappings.startingAt(address);
|
|
398
|
+
const mapping = starting && starting.end >= address + oldSize ? starting : undefined;
|
|
344
399
|
if (mapping?.registrySlot !== undefined)
|
|
345
400
|
return -ENOMEM;
|
|
346
401
|
const oldEnd = address + oldSize;
|
|
@@ -387,12 +442,12 @@ export class WaliMemoryManager {
|
|
|
387
442
|
new Uint8Array(this.memory().buffer).set(contents, target);
|
|
388
443
|
this.release(address, oldEnd);
|
|
389
444
|
if (mapping) {
|
|
390
|
-
mapping
|
|
445
|
+
this.mappings.moveStart(mapping, target);
|
|
391
446
|
mapping.end = targetEnd;
|
|
392
447
|
mapping.fixed = Boolean(flags & MREMAP_FIXED);
|
|
393
448
|
}
|
|
394
449
|
else {
|
|
395
|
-
this.mappings.
|
|
450
|
+
this.mappings.add({
|
|
396
451
|
start: target, end: targetEnd, protection: 0, fixed: Boolean(flags & MREMAP_FIXED),
|
|
397
452
|
fileOffset: 0, shared: false, references: 1,
|
|
398
453
|
});
|
|
@@ -408,7 +463,7 @@ export class WaliMemoryManager {
|
|
|
408
463
|
if (!validPageRange(address, length) || !Number.isSafeInteger(flags) || flags < 0)
|
|
409
464
|
return -EINVAL;
|
|
410
465
|
const end = address + length;
|
|
411
|
-
const mapping = this.mappings.
|
|
466
|
+
const mapping = this.mappings.containing(address, end);
|
|
412
467
|
if (!mapping)
|
|
413
468
|
return -ENOMEM;
|
|
414
469
|
return !mapping.shared || this.flushMapping(mapping, address, end) ? 0n : -EIO;
|
|
@@ -496,10 +551,14 @@ export class WaliMemoryManager {
|
|
|
496
551
|
this.lockAllocator();
|
|
497
552
|
try {
|
|
498
553
|
const count = this.freeRangeCount();
|
|
554
|
+
// Plain reads: the table is read under the allocator's lock, whose
|
|
555
|
+
// atomics order it, and an atomic load per word was most of a scan's
|
|
556
|
+
// cost, 7,600 unmaps into Blender's start (2026-09-27).
|
|
557
|
+
const table = this.allocatorState;
|
|
499
558
|
for (let slot = 0; slot < count; slot += 1) {
|
|
500
559
|
const base = freeRangeBase(slot);
|
|
501
|
-
const start =
|
|
502
|
-
const available =
|
|
560
|
+
const start = table[base] >>> 0;
|
|
561
|
+
const available = table[base + 1] >>> 0;
|
|
503
562
|
if (available < size)
|
|
504
563
|
continue;
|
|
505
564
|
if (available === size) {
|
|
@@ -546,10 +605,12 @@ export class WaliMemoryManager {
|
|
|
546
605
|
let mergedEnd = end;
|
|
547
606
|
for (;;) {
|
|
548
607
|
let merged = false;
|
|
608
|
+
// Plain reads under the allocator's lock, as in `reserve`.
|
|
609
|
+
const table = this.allocatorState;
|
|
549
610
|
for (let slot = 0; slot < this.freeRangeCount(); slot += 1) {
|
|
550
611
|
const base = freeRangeBase(slot);
|
|
551
|
-
const rangeStart =
|
|
552
|
-
const rangeEnd = rangeStart + (
|
|
612
|
+
const rangeStart = table[base] >>> 0;
|
|
613
|
+
const rangeEnd = rangeStart + (table[base + 1] >>> 0);
|
|
553
614
|
if (rangeEnd < mergedStart || rangeStart > mergedEnd)
|
|
554
615
|
continue;
|
|
555
616
|
mergedStart = Math.min(mergedStart, rangeStart);
|
package/dist/memory.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory.js","sourceRoot":"","sources":["../src/memory.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"memory.js","sourceRoot":"","sources":["../src/memory.ts"],"names":[],"mappings":"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"}
|
package/dist/module-layout.d.ts
CHANGED
|
@@ -3,6 +3,12 @@ export interface WaliMemoryLayout {
|
|
|
3
3
|
initial: number;
|
|
4
4
|
maximum?: number;
|
|
5
5
|
shared: boolean;
|
|
6
|
+
/**
|
|
7
|
+
* Every data segment is passive: instantiating the module writes nothing
|
|
8
|
+
* into the memory it imports (wasm-ld's guarded `__wasm_init_memory` runs
|
|
9
|
+
* once per memory), so an instance made after the program started is safe.
|
|
10
|
+
*/
|
|
11
|
+
passiveData?: boolean;
|
|
6
12
|
}
|
|
7
13
|
export declare function createImportedMemory(source: WaliModuleSource, supplied?: WebAssembly.Memory): WebAssembly.Memory | undefined;
|
|
8
14
|
/** A process's memory, as its module's `env.memory` import declares it. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module-layout.d.ts","sourceRoot":"","sources":["../src/module-layout.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"module-layout.d.ts","sourceRoot":"","sources":["../src/module-layout.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,gBAAgB,EAAE,QAAQ,CAAC,EAAE,WAAW,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,GAAG,SAAS,CAM5H;AAED,2EAA2E;AAC3E,wBAAgB,eAAe,CAAC,MAAM,EAAE,gBAAgB,GAAG,WAAW,CAAC,MAAM,CAS5E;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,UAAU,GAAG,gBAAgB,GAAG,SAAS,CAuClF"}
|
package/dist/module-layout.js
CHANGED
|
@@ -24,13 +24,18 @@ export function findImportedMemory(bytes) {
|
|
|
24
24
|
if (!readBytes(bytes, cursor, 8).every((value, index) => value === expected[index])) {
|
|
25
25
|
throw new Error("Not a WebAssembly binary.");
|
|
26
26
|
}
|
|
27
|
+
let found;
|
|
27
28
|
while (cursor.offset < bytes.byteLength) {
|
|
28
29
|
const sectionId = bytes[cursor.offset++];
|
|
29
30
|
const sectionSize = readUleb(bytes, cursor);
|
|
30
31
|
const sectionEnd = cursor.offset + sectionSize;
|
|
31
32
|
if (sectionEnd > bytes.byteLength)
|
|
32
33
|
throw new Error("Malformed WebAssembly section size.");
|
|
33
|
-
if (sectionId
|
|
34
|
+
if (sectionId === 11 && found) {
|
|
35
|
+
found.passiveData = dataSegmentsPassive(bytes, cursor);
|
|
36
|
+
return found;
|
|
37
|
+
}
|
|
38
|
+
if (sectionId !== 2 || found) {
|
|
34
39
|
cursor.offset = sectionEnd;
|
|
35
40
|
continue;
|
|
36
41
|
}
|
|
@@ -44,14 +49,32 @@ export function findImportedMemory(bytes) {
|
|
|
44
49
|
if (kind === 2) {
|
|
45
50
|
const layout = readLimits(bytes, cursor);
|
|
46
51
|
if (module === "env" && name === "memory")
|
|
47
|
-
|
|
52
|
+
found = layout;
|
|
48
53
|
}
|
|
49
54
|
else {
|
|
50
55
|
skipImportType(bytes, cursor, kind);
|
|
51
56
|
}
|
|
52
57
|
}
|
|
53
|
-
|
|
58
|
+
if (!found)
|
|
59
|
+
return;
|
|
60
|
+
cursor.offset = sectionEnd;
|
|
61
|
+
}
|
|
62
|
+
// No data section: nothing to write either.
|
|
63
|
+
if (found)
|
|
64
|
+
found.passiveData = true;
|
|
65
|
+
return found;
|
|
66
|
+
}
|
|
67
|
+
/** Whether every segment of the data section at the cursor is passive (flag 1). */
|
|
68
|
+
function dataSegmentsPassive(bytes, cursor) {
|
|
69
|
+
const count = readUleb(bytes, cursor);
|
|
70
|
+
for (let index = 0; index < count; index += 1) {
|
|
71
|
+
const flags = readUleb(bytes, cursor);
|
|
72
|
+
if (flags !== 1)
|
|
73
|
+
return false;
|
|
74
|
+
const length = readUleb(bytes, cursor);
|
|
75
|
+
cursor.offset += length;
|
|
54
76
|
}
|
|
77
|
+
return true;
|
|
55
78
|
}
|
|
56
79
|
function readLimits(bytes, cursor) {
|
|
57
80
|
const flags = readUleb(bytes, cursor);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module-layout.js","sourceRoot":"","sources":["../src/module-layout.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"module-layout.js","sourceRoot":"","sources":["../src/module-layout.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,4 +9,13 @@
|
|
|
9
9
|
* is one high-resolution timeline across workers.
|
|
10
10
|
*/
|
|
11
11
|
export declare function monotonicMilliseconds(): number;
|
|
12
|
+
/**
|
|
13
|
+
* CLOCK_REALTIME as `clock_gettime` reports it: the same high-resolution
|
|
14
|
+
* timeline. Absolute deadlines (TIMER_ABSTIME sleeps, FUTEX_CLOCK_REALTIME
|
|
15
|
+
* waits), `gettimeofday` and every file time the filesystem records read
|
|
16
|
+
* this too; comparing a deadline taken from
|
|
17
|
+
* `clock_gettime` against `Date.now()` mixed two clocks that drift apart, by
|
|
18
|
+
* seconds after the machine sleeps (review of 2098971).
|
|
19
|
+
*/
|
|
20
|
+
export declare function realtimeMilliseconds(): number;
|
|
12
21
|
//# sourceMappingURL=monotonic-clock.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"monotonic-clock.d.ts","sourceRoot":"","sources":["../src/monotonic-clock.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAE9C"}
|
|
1
|
+
{"version":3,"file":"monotonic-clock.d.ts","sourceRoot":"","sources":["../src/monotonic-clock.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAE9C;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C"}
|
package/dist/monotonic-clock.js
CHANGED
|
@@ -11,4 +11,15 @@
|
|
|
11
11
|
export function monotonicMilliseconds() {
|
|
12
12
|
return typeof performance === "undefined" ? Date.now() : performance.timeOrigin + performance.now();
|
|
13
13
|
}
|
|
14
|
+
/**
|
|
15
|
+
* CLOCK_REALTIME as `clock_gettime` reports it: the same high-resolution
|
|
16
|
+
* timeline. Absolute deadlines (TIMER_ABSTIME sleeps, FUTEX_CLOCK_REALTIME
|
|
17
|
+
* waits), `gettimeofday` and every file time the filesystem records read
|
|
18
|
+
* this too; comparing a deadline taken from
|
|
19
|
+
* `clock_gettime` against `Date.now()` mixed two clocks that drift apart, by
|
|
20
|
+
* seconds after the machine sleeps (review of 2098971).
|
|
21
|
+
*/
|
|
22
|
+
export function realtimeMilliseconds() {
|
|
23
|
+
return typeof performance === "undefined" ? Date.now() : performance.timeOrigin + performance.now();
|
|
24
|
+
}
|
|
14
25
|
//# sourceMappingURL=monotonic-clock.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"monotonic-clock.js","sourceRoot":"","sources":["../src/monotonic-clock.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,MAAM,UAAU,qBAAqB;IACnC,OAAO,OAAO,WAAW,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;AACtG,CAAC"}
|
|
1
|
+
{"version":3,"file":"monotonic-clock.js","sourceRoot":"","sources":["../src/monotonic-clock.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,MAAM,UAAU,qBAAqB;IACnC,OAAO,OAAO,WAAW,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;AACtG,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,oBAAoB;IAClC,OAAO,OAAO,WAAW,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;AACtG,CAAC"}
|
package/dist/network-worker.js
CHANGED
|
@@ -445,8 +445,13 @@ async function epollWait(epollFd, maximum, timeout, mask = 0n) {
|
|
|
445
445
|
if (timeout === 0 || Date.now() >= deadline)
|
|
446
446
|
return { result: 0, output: new Uint8Array() };
|
|
447
447
|
// Other descriptor sources retain the existing shared-pipe/socket scan.
|
|
448
|
-
|
|
449
|
-
|
|
448
|
+
let childrenOnly = true;
|
|
449
|
+
for (const fd of registrations.keys())
|
|
450
|
+
if (!children.owns(fd)) {
|
|
451
|
+
childrenOnly = false;
|
|
452
|
+
break;
|
|
453
|
+
}
|
|
454
|
+
await waitForDescriptorChange(childrenOnly ? deadline - Date.now() : 2);
|
|
450
455
|
} while (true);
|
|
451
456
|
}
|
|
452
457
|
function isStdinDescriptor(fd) {
|