@peerbit/shared-log 13.2.27 → 13.2.28

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@peerbit/shared-log",
3
- "version": "13.2.27",
3
+ "version": "13.2.28",
4
4
  "description": "Shared log",
5
5
  "sideEffects": false,
6
6
  "type": "module",
@@ -64,34 +64,34 @@
64
64
  "uint8arrays": "^5.1.0",
65
65
  "@peerbit/any-store": "2.2.14",
66
66
  "@peerbit/blocks-interface": "2.1.5",
67
- "@peerbit/blocks": "4.2.10",
68
67
  "@peerbit/cache": "3.1.1",
69
68
  "@peerbit/crypto": "3.1.5",
70
- "@peerbit/indexer-interface": "3.0.9",
71
- "@peerbit/log": "6.2.16",
69
+ "@peerbit/blocks": "4.2.10",
70
+ "@peerbit/diagnostics": "0.0.1",
72
71
  "@peerbit/indexer-sqlite3": "3.0.14",
72
+ "@peerbit/log": "6.2.16",
73
73
  "@peerbit/logger": "2.0.1",
74
- "@peerbit/program": "6.0.48",
75
- "@peerbit/diagnostics": "0.0.1",
76
74
  "@peerbit/pubsub": "5.4.0",
77
- "@peerbit/riblt": "1.2.0",
75
+ "@peerbit/indexer-interface": "3.0.9",
76
+ "@peerbit/stream-interface": "6.0.15",
78
77
  "@peerbit/pubsub-interface": "5.2.0",
79
- "@peerbit/rpc": "6.1.16",
78
+ "@peerbit/riblt": "1.2.0",
80
79
  "@peerbit/time": "3.0.1",
81
- "@peerbit/stream-interface": "6.0.15"
80
+ "@peerbit/program": "6.0.48",
81
+ "@peerbit/rpc": "6.1.16"
82
82
  },
83
83
  "optionalDependencies": {
84
- "@peerbit/shared-log-rust": "0.1.4",
85
- "@peerbit/native-backbone": "0.2.5"
84
+ "@peerbit/native-backbone": "0.2.5",
85
+ "@peerbit/shared-log-rust": "0.1.4"
86
86
  },
87
87
  "devDependencies": {
88
88
  "@types/libsodium-wrappers": "^0.7.14",
89
89
  "@types/pidusage": "^2.0.5",
90
90
  "uuid": "^11.1.1",
91
- "@peerbit/indexer-rust": "1.0.7",
92
91
  "@peerbit/any-store-rust": "0.1.4",
93
- "@peerbit/test-utils": "3.1.22",
94
- "peerbit": "5.3.22"
92
+ "@peerbit/indexer-rust": "1.0.7",
93
+ "peerbit": "5.3.22",
94
+ "@peerbit/test-utils": "3.1.22"
95
95
  },
96
96
  "repository": {
97
97
  "type": "git",
package/src/index.ts CHANGED
@@ -1494,8 +1494,8 @@ const createRepairFrontierByMode = () =>
1494
1494
  >(REPAIR_DISPATCH_MODES.map((mode) => [mode, new Map()]));
1495
1495
 
1496
1496
  const createRepairActiveTargetsByMode = () =>
1497
- new Map<RepairDispatchMode, Set<string>>(
1498
- REPAIR_DISPATCH_MODES.map((mode) => [mode, new Set()]),
1497
+ new Map<RepairDispatchMode, Map<string, object>>(
1498
+ REPAIR_DISPATCH_MODES.map((mode) => [mode, new Map()]),
1499
1499
  );
1500
1500
 
1501
1501
  const createRepairFrontierBypassKnownPeersByMode = () =>
@@ -3246,7 +3246,7 @@ export class SharedLog<
3246
3246
  >;
3247
3247
  private _repairFrontierActiveTargetsByMode!: Map<
3248
3248
  RepairDispatchMode,
3249
- Set<string>
3249
+ Map<string, object>
3250
3250
  >;
3251
3251
  private _repairFrontierBypassKnownPeersByMode!: Map<
3252
3252
  RepairDispatchMode,
@@ -7821,7 +7821,11 @@ export class SharedLog<
7821
7821
  ) {
7822
7822
  return;
7823
7823
  }
7824
- activeTargets.add(target);
7824
+ const runnerToken = {};
7825
+ activeTargets.set(target, runnerToken);
7826
+ const isCurrentRunner = () =>
7827
+ activeTargets.get(target) === runnerToken &&
7828
+ this.isRepairLifecycleActive(repairLifecycleController);
7825
7829
  const retrySchedule = resolveRepairRetrySchedule(
7826
7830
  mode,
7827
7831
  retryScheduleMs,
@@ -7840,12 +7844,12 @@ export class SharedLog<
7840
7844
  let attemptIndex = 0;
7841
7845
  try {
7842
7846
  for (;;) {
7843
- if (!this.isRepairLifecycleActive(repairLifecycleController)) {
7847
+ if (!isCurrentRunner()) {
7844
7848
  return;
7845
7849
  }
7846
7850
  const pending = this._repairFrontierByMode.get(mode)?.get(target);
7847
7851
  if (!pending || pending.size === 0) {
7848
- if (!this.isRepairLifecycleActive(repairLifecycleController)) {
7852
+ if (!isCurrentRunner()) {
7849
7853
  return;
7850
7854
  }
7851
7855
  this._repairFrontierBypassKnownPeersByMode
@@ -7872,7 +7876,7 @@ export class SharedLog<
7872
7876
  continue;
7873
7877
  }
7874
7878
 
7875
- if (!this.isRepairLifecycleActive(repairLifecycleController)) {
7879
+ if (!isCurrentRunner()) {
7876
7880
  return;
7877
7881
  }
7878
7882
  await this.sendMaybeMissingEntriesNow(
@@ -7889,7 +7893,7 @@ export class SharedLog<
7889
7893
  },
7890
7894
  repairLifecycleController,
7891
7895
  );
7892
- if (!this.isRepairLifecycleActive(repairLifecycleController)) {
7896
+ if (!isCurrentRunner()) {
7893
7897
  return;
7894
7898
  }
7895
7899
 
@@ -7911,21 +7915,25 @@ export class SharedLog<
7911
7915
  }
7912
7916
  }
7913
7917
  } finally {
7914
- activeTargets.delete(target);
7915
- if (
7916
- this.isRepairLifecycleActive(repairLifecycleController) &&
7917
- (this._repairFrontierByMode.get(mode)?.get(target)?.size || 0) > 0
7918
- ) {
7919
- this.ensureRepairFrontierRunner(
7920
- mode,
7921
- target,
7922
- retryScheduleMs,
7923
- repairLifecycleController,
7924
- );
7918
+ if (activeTargets.get(target) === runnerToken) {
7919
+ activeTargets.delete(target);
7920
+ if (
7921
+ this.isRepairLifecycleActive(repairLifecycleController) &&
7922
+ (this._repairFrontierByMode.get(mode)?.get(target)?.size || 0) > 0
7923
+ ) {
7924
+ this.ensureRepairFrontierRunner(
7925
+ mode,
7926
+ target,
7927
+ retryScheduleMs,
7928
+ repairLifecycleController,
7929
+ );
7930
+ }
7925
7931
  }
7926
7932
  }
7927
7933
  })().catch((error: any) => {
7928
- activeTargets.delete(target);
7934
+ if (activeTargets.get(target) === runnerToken) {
7935
+ activeTargets.delete(target);
7936
+ }
7929
7937
  if (this.isRepairLifecycleActive(repairLifecycleController)) {
7930
7938
  logger.error(error);
7931
7939
  }