@rotorsoft/act 1.23.28 → 1.23.29

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/index.js CHANGED
@@ -2945,7 +2945,7 @@ var SettleLoop = class {
2945
2945
  this._running = true;
2946
2946
  (async () => {
2947
2947
  await this._deps.init();
2948
- let last_drain;
2948
+ let settled_drain;
2949
2949
  for (let i = 0; i < maxPasses; i++) {
2950
2950
  const after_before = this._deps.checkpoint();
2951
2951
  const { subscribed, last_id } = await this._deps.correlate({
@@ -2953,11 +2953,17 @@ var SettleLoop = class {
2953
2953
  after: after_before
2954
2954
  });
2955
2955
  if (this._deps.correlate_probes_store) this._deps.breaker.passed();
2956
- last_drain = await this._deps.drain(drain_options);
2957
- const made_progress = subscribed > 0 || last_drain.acked.length > 0 || last_drain.blocked.length > 0 || last_id > after_before;
2956
+ const drain = await this._deps.drain(drain_options);
2957
+ settled_drain = settled_drain ? {
2958
+ fetched: [...settled_drain.fetched, ...drain.fetched],
2959
+ leased: [...settled_drain.leased, ...drain.leased],
2960
+ acked: [...settled_drain.acked, ...drain.acked],
2961
+ blocked: [...settled_drain.blocked, ...drain.blocked]
2962
+ } : drain;
2963
+ const made_progress = subscribed > 0 || drain.acked.length > 0 || drain.blocked.length > 0 || last_id > after_before;
2958
2964
  if (!made_progress) break;
2959
2965
  }
2960
- if (last_drain) this._deps.on_settled(last_drain);
2966
+ if (settled_drain) this._deps.on_settled(settled_drain);
2961
2967
  })().catch((err) => {
2962
2968
  this._deps.breaker.failed(Date.now(), err);
2963
2969
  }).finally(() => {