@ai-ecoverse/slicc-kernel 1.7.1 → 1.8.0

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/node.js CHANGED
@@ -1453,6 +1453,8 @@ var SAB_I_STATUS = 2;
1453
1453
  var SAB_I_TOTAL = 3;
1454
1454
  var SAB_I_CHUNK = 4;
1455
1455
  var SAB_I_OFFSET = 5;
1456
+ var SAB_I_REQ = 6;
1457
+ var SAB_I_PUB = 7;
1456
1458
  var SAB_I_SIGNALS = 8;
1457
1459
  var SAB_I_TIMERS = 9;
1458
1460
  var SAB_STATE_READY = 2;
@@ -1507,6 +1509,10 @@ function attachSyncSabResponder(port, sab, token, opts) {
1507
1509
  pending.delete(id);
1508
1510
  }
1509
1511
  function publish(id, entry, offset) {
1512
+ if (Atomics.load(header2, SAB_I_REQ) !== id) {
1513
+ drop(id);
1514
+ return;
1515
+ }
1510
1516
  const chunk2 = Math.min(window.byteLength, entry.payload.byteLength - offset);
1511
1517
  if (chunk2 > 0) window.set(entry.payload.subarray(offset, offset + chunk2));
1512
1518
  Atomics.store(header2, SAB_I_STATUS, entry.status);
@@ -1515,7 +1521,8 @@ function attachSyncSabResponder(port, sab, token, opts) {
1515
1521
  Atomics.store(header2, SAB_I_OFFSET, offset);
1516
1522
  Atomics.store(header2, SAB_I_SEQ, id);
1517
1523
  Atomics.store(header2, SAB_I_STATE, SAB_STATE_READY);
1518
- Atomics.notify(header2, SAB_I_STATE);
1524
+ Atomics.add(header2, SAB_I_PUB, 1);
1525
+ Atomics.notify(header2, SAB_I_PUB);
1519
1526
  if (offset + chunk2 >= entry.payload.byteLength) drop(id);
1520
1527
  }
1521
1528
  function settle(id, result) {