@componentor/fs 3.0.51 → 3.0.52

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.
@@ -2469,8 +2469,11 @@ var SAB_OFFSETS = {
2469
2469
  // BigUint64 - full data size across all chunks
2470
2470
  CHUNK_IDX: 24,
2471
2471
  // Int32 - 0-based chunk index
2472
- RESERVED: 28,
2473
- // Int32 - reserved
2472
+ HEARTBEAT: 28,
2473
+ // Int32 - liveness counter; the relay worker bumps this ~1×/s
2474
+ // while its event loop is alive (incl. mid-await of a
2475
+ // long op) so a spin-waiting main thread can tell
2476
+ // "slow" from "dead". Never written by the main thread.
2474
2477
  HEADER_SIZE: 32
2475
2478
  // Data payload starts here
2476
2479
  };
@@ -2538,6 +2541,15 @@ var asyncSab = null;
2538
2541
  var asyncCtrl = null;
2539
2542
  var tabId = "";
2540
2543
  var HEADER_SIZE = SAB_OFFSETS.HEADER_SIZE;
2544
+ var HEARTBEAT_INDEX = SAB_OFFSETS.HEARTBEAT >> 2;
2545
+ var HEARTBEAT_INTERVAL_MS = 1e3;
2546
+ var heartbeatTimer = null;
2547
+ function startHeartbeat() {
2548
+ if (heartbeatTimer !== null || !ctrl) return;
2549
+ heartbeatTimer = setInterval(() => {
2550
+ Atomics.add(ctrl, HEARTBEAT_INDEX, 1);
2551
+ }, HEARTBEAT_INTERVAL_MS);
2552
+ }
2541
2553
  var clientPorts = /* @__PURE__ */ new Map();
2542
2554
  var portQueue = [];
2543
2555
  var yieldChannel = new MessageChannel();
@@ -3744,6 +3756,7 @@ self.onmessage = async (e) => {
3744
3756
  readySab = msg.readySab;
3745
3757
  ctrl = new Int32Array(sab, 0, 8);
3746
3758
  readySignal = new Int32Array(readySab, 0, 1);
3759
+ startHeartbeat();
3747
3760
  }
3748
3761
  if (msg.asyncSab) {
3749
3762
  asyncSab = msg.asyncSab;
@@ -3782,6 +3795,7 @@ self.onmessage = async (e) => {
3782
3795
  readySab = msg.readySab;
3783
3796
  ctrl = new Int32Array(sab, 0, 8);
3784
3797
  readySignal = new Int32Array(readySab, 0, 1);
3798
+ startHeartbeat();
3785
3799
  }
3786
3800
  if (msg.asyncSab) {
3787
3801
  asyncSab = msg.asyncSab;
@@ -3818,6 +3832,7 @@ self.onmessage = async (e) => {
3818
3832
  readySab = msg.readySab;
3819
3833
  ctrl = new Int32Array(sab, 0, 8);
3820
3834
  readySignal = new Int32Array(readySab, 0, 1);
3835
+ startHeartbeat();
3821
3836
  }
3822
3837
  if (msg.asyncSab) {
3823
3838
  asyncSab = msg.asyncSab;