@volter/browser-wali 0.1.10 → 0.1.12

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 (113) hide show
  1. package/dist/bulk-memory.d.ts +23 -0
  2. package/dist/bulk-memory.d.ts.map +1 -0
  3. package/dist/bulk-memory.js +50 -0
  4. package/dist/bulk-memory.js.map +1 -0
  5. package/dist/coherent-file-locks.d.ts +4 -1
  6. package/dist/coherent-file-locks.d.ts.map +1 -1
  7. package/dist/coherent-file-locks.js +24 -1
  8. package/dist/coherent-file-locks.js.map +1 -1
  9. package/dist/descriptors.d.ts +18 -1
  10. package/dist/descriptors.d.ts.map +1 -1
  11. package/dist/descriptors.js +51 -6
  12. package/dist/descriptors.js.map +1 -1
  13. package/dist/filesystem-host.d.ts +81 -0
  14. package/dist/filesystem-host.d.ts.map +1 -0
  15. package/dist/filesystem-host.js +849 -0
  16. package/dist/filesystem-host.js.map +1 -0
  17. package/dist/filesystem-protocol.d.ts +49 -1
  18. package/dist/filesystem-protocol.d.ts.map +1 -1
  19. package/dist/filesystem-protocol.js +17 -0
  20. package/dist/filesystem-protocol.js.map +1 -1
  21. package/dist/filesystem-remote.d.ts +72 -18
  22. package/dist/filesystem-remote.d.ts.map +1 -1
  23. package/dist/filesystem-remote.js +271 -40
  24. package/dist/filesystem-remote.js.map +1 -1
  25. package/dist/filesystem-worker.js +8 -502
  26. package/dist/filesystem-worker.js.map +1 -1
  27. package/dist/filesystem.d.ts +9 -0
  28. package/dist/filesystem.d.ts.map +1 -1
  29. package/dist/filesystem.js +209 -61
  30. package/dist/filesystem.js.map +1 -1
  31. package/dist/host-idle.d.ts +29 -0
  32. package/dist/host-idle.d.ts.map +1 -0
  33. package/dist/host-idle.js +68 -0
  34. package/dist/host-idle.js.map +1 -0
  35. package/dist/host.d.ts +1 -0
  36. package/dist/host.d.ts.map +1 -1
  37. package/dist/host.js +1 -3
  38. package/dist/host.js.map +1 -1
  39. package/dist/memory.d.ts.map +1 -1
  40. package/dist/memory.js +79 -18
  41. package/dist/memory.js.map +1 -1
  42. package/dist/module-layout.d.ts +6 -0
  43. package/dist/module-layout.d.ts.map +1 -1
  44. package/dist/module-layout.js +26 -3
  45. package/dist/module-layout.js.map +1 -1
  46. package/dist/monotonic-clock.d.ts +9 -0
  47. package/dist/monotonic-clock.d.ts.map +1 -1
  48. package/dist/monotonic-clock.js +11 -0
  49. package/dist/monotonic-clock.js.map +1 -1
  50. package/dist/network-worker.js +7 -2
  51. package/dist/network-worker.js.map +1 -1
  52. package/dist/network.d.ts.map +1 -1
  53. package/dist/network.js +11 -8
  54. package/dist/network.js.map +1 -1
  55. package/dist/process-bridge.d.ts.map +1 -1
  56. package/dist/process-bridge.js +25 -5
  57. package/dist/process-bridge.js.map +1 -1
  58. package/dist/program.d.ts +5 -1
  59. package/dist/program.d.ts.map +1 -1
  60. package/dist/program.js +13 -12
  61. package/dist/program.js.map +1 -1
  62. package/dist/runtime.d.ts.map +1 -1
  63. package/dist/runtime.js +75 -9
  64. package/dist/runtime.js.map +1 -1
  65. package/dist/shared-file-layer.d.ts +69 -0
  66. package/dist/shared-file-layer.d.ts.map +1 -0
  67. package/dist/shared-file-layer.js +299 -0
  68. package/dist/shared-file-layer.js.map +1 -0
  69. package/dist/shared-pipes.d.ts +7 -0
  70. package/dist/shared-pipes.d.ts.map +1 -1
  71. package/dist/shared-pipes.js +56 -17
  72. package/dist/shared-pipes.js.map +1 -1
  73. package/dist/signals.d.ts +2 -0
  74. package/dist/signals.d.ts.map +1 -1
  75. package/dist/signals.js +5 -1
  76. package/dist/signals.js.map +1 -1
  77. package/dist/snapshot-filesystem.d.ts +36 -3
  78. package/dist/snapshot-filesystem.d.ts.map +1 -1
  79. package/dist/snapshot-filesystem.js +204 -19
  80. package/dist/snapshot-filesystem.js.map +1 -1
  81. package/dist/stdin.d.ts.map +1 -1
  82. package/dist/stdin.js +3 -2
  83. package/dist/stdin.js.map +1 -1
  84. package/dist/symlink.d.ts.map +1 -1
  85. package/dist/symlink.js +91 -1
  86. package/dist/symlink.js.map +1 -1
  87. package/dist/system.d.ts.map +1 -1
  88. package/dist/system.js +17 -6
  89. package/dist/system.js.map +1 -1
  90. package/dist/thread-coordinator-worker.d.ts +1 -25
  91. package/dist/thread-coordinator-worker.d.ts.map +1 -1
  92. package/dist/thread-coordinator-worker.js +29 -2
  93. package/dist/thread-coordinator-worker.js.map +1 -1
  94. package/dist/thread-worker.js +13 -8
  95. package/dist/thread-worker.js.map +1 -1
  96. package/dist/threads.d.ts +4 -0
  97. package/dist/threads.d.ts.map +1 -1
  98. package/dist/threads.js +72 -43
  99. package/dist/threads.js.map +1 -1
  100. package/dist/types.d.ts +10 -0
  101. package/dist/types.d.ts.map +1 -1
  102. package/dist/websocket-peer.d.ts.map +1 -1
  103. package/dist/websocket-peer.js +2 -1
  104. package/dist/websocket-peer.js.map +1 -1
  105. package/dist/worker-program-protocol.d.ts +26 -0
  106. package/dist/worker-program-protocol.d.ts.map +1 -1
  107. package/dist/worker-program-worker.js +26 -8
  108. package/dist/worker-program-worker.js.map +1 -1
  109. package/dist/worker-program.d.ts +43 -0
  110. package/dist/worker-program.d.ts.map +1 -1
  111. package/dist/worker-program.js +198 -24
  112. package/dist/worker-program.js.map +1 -1
  113. 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
- this.mappings.push(...snapshot.mappings.map(mapping => ({ ...mapping })));
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.push({
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.find((candidate) => address >= candidate.start && end <= candidate.end);
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 index = this.mappings.findIndex((candidate) => address >= candidate.start && end <= candidate.end);
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.splice(index, 1);
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.splice(index, 1);
299
+ this.mappings.remove(mapping);
252
300
  }
253
301
  else if (address === mapping.start) {
254
302
  mapping.fileOffset += end - mapping.start;
255
- mapping.start = end;
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.push({ ...mapping, start: end, fileOffset: mapping.fileOffset + (end - mapping.start) });
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 mapping = this.mappings.find((candidate) => candidate.start === address && candidate.end >= address + oldSize);
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.start = target;
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.push({
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.find((candidate) => address >= candidate.start && end <= candidate.end);
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 = Atomics.load(this.allocatorState, base) >>> 0;
502
- const available = Atomics.load(this.allocatorState, base + 1) >>> 0;
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 = Atomics.load(this.allocatorState, base) >>> 0;
552
- const rangeEnd = rangeStart + (Atomics.load(this.allocatorState, base + 1) >>> 0);
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);
@@ -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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"}
@@ -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;CACjB;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,CA8BlF"}
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"}
@@ -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 !== 2) {
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
- return layout;
52
+ found = layout;
48
53
  }
49
54
  else {
50
55
  skipImportType(bytes, cursor, kind);
51
56
  }
52
57
  }
53
- return;
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":"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"}
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"}
@@ -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"}
@@ -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
- await waitForDescriptorChange([...registrations.keys()].every(fd => children.owns(fd))
449
- ? deadline - Date.now() : 2);
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) {