@ai-ecoverse/slicc-kernel 1.7.1 → 1.7.2

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.
@@ -3097,6 +3097,8 @@ var SAB_I_STATUS = 2;
3097
3097
  var SAB_I_TOTAL = 3;
3098
3098
  var SAB_I_CHUNK = 4;
3099
3099
  var SAB_I_OFFSET = 5;
3100
+ var SAB_I_REQ = 6;
3101
+ var SAB_I_PUB = 7;
3100
3102
  var SAB_I_SIGNALS = 8;
3101
3103
  var SAB_I_TIMERS = 9;
3102
3104
  var SAB_STATE_READY = 2;
@@ -3151,6 +3153,10 @@ function attachSyncSabResponder(port, sab, token, opts) {
3151
3153
  pending.delete(id);
3152
3154
  }
3153
3155
  function publish(id, entry, offset) {
3156
+ if (Atomics.load(header2, SAB_I_REQ) !== id) {
3157
+ drop(id);
3158
+ return;
3159
+ }
3154
3160
  const chunk2 = Math.min(window.byteLength, entry.payload.byteLength - offset);
3155
3161
  if (chunk2 > 0) window.set(entry.payload.subarray(offset, offset + chunk2));
3156
3162
  Atomics.store(header2, SAB_I_STATUS, entry.status);
@@ -3159,7 +3165,8 @@ function attachSyncSabResponder(port, sab, token, opts) {
3159
3165
  Atomics.store(header2, SAB_I_OFFSET, offset);
3160
3166
  Atomics.store(header2, SAB_I_SEQ, id);
3161
3167
  Atomics.store(header2, SAB_I_STATE, SAB_STATE_READY);
3162
- Atomics.notify(header2, SAB_I_STATE);
3168
+ Atomics.add(header2, SAB_I_PUB, 1);
3169
+ Atomics.notify(header2, SAB_I_PUB);
3163
3170
  if (offset + chunk2 >= entry.payload.byteLength) drop(id);
3164
3171
  }
3165
3172
  function settle2(id, result) {