@peerbit/shared-log 16.0.31 → 16.0.33
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/README.md +26 -0
- package/dist/src/errors.d.ts +1 -1
- package/dist/src/errors.d.ts.map +1 -1
- package/dist/src/errors.js +4 -2
- package/dist/src/errors.js.map +1 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +19 -5
- package/dist/src/index.js.map +1 -1
- package/dist/src/sync/dispatch-lifecycle.d.ts +5 -0
- package/dist/src/sync/dispatch-lifecycle.d.ts.map +1 -1
- package/dist/src/sync/dispatch-lifecycle.js +15 -0
- package/dist/src/sync/dispatch-lifecycle.js.map +1 -1
- package/dist/src/sync/index.d.ts +3 -1
- package/dist/src/sync/index.d.ts.map +1 -1
- package/dist/src/sync/rateless-iblt.d.ts +7 -1
- package/dist/src/sync/rateless-iblt.d.ts.map +1 -1
- package/dist/src/sync/rateless-iblt.js +132 -10
- package/dist/src/sync/rateless-iblt.js.map +1 -1
- package/dist/src/sync/simple.d.ts +5 -2
- package/dist/src/sync/simple.d.ts.map +1 -1
- package/dist/src/sync/simple.js +165 -119
- package/dist/src/sync/simple.js.map +1 -1
- package/package.json +16 -16
- package/src/errors.ts +4 -2
- package/src/index.ts +27 -7
- package/src/sync/dispatch-lifecycle.ts +20 -0
- package/src/sync/index.ts +3 -0
- package/src/sync/rateless-iblt.ts +169 -8
- package/src/sync/simple.ts +235 -151
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
import { AbortError } from "@peerbit/time";
|
|
2
|
+
/** Local receive drain cancellation; never a transport or persistence failure. */
|
|
3
|
+
export declare class SyncReceiveAbortError extends AbortError {
|
|
4
|
+
}
|
|
5
|
+
export declare const isSyncDispatchCancellation: (error: unknown, signal: AbortSignal | undefined, inactive?: boolean) => boolean;
|
|
1
6
|
export interface DispatchTargetLifecycleBase<LC> {
|
|
2
7
|
lifecycle: LC;
|
|
3
8
|
target: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dispatch-lifecycle.d.ts","sourceRoot":"","sources":["../../../src/sync/dispatch-lifecycle.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"dispatch-lifecycle.d.ts","sourceRoot":"","sources":["../../../src/sync/dispatch-lifecycle.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,6 +16,21 @@
|
|
|
16
16
|
// caller-specific fields such as epochs, batches and retained-work
|
|
17
17
|
// counters); the registry owns the per-target active sets, the listener
|
|
18
18
|
// add/remove pairing and the dispose gating.
|
|
19
|
+
import { AbortError } from "@peerbit/time";
|
|
20
|
+
/** Local receive drain cancellation; never a transport or persistence failure. */
|
|
21
|
+
export class SyncReceiveAbortError extends AbortError {
|
|
22
|
+
}
|
|
23
|
+
export const isSyncDispatchCancellation = (error, signal, inactive = signal?.aborted === true) => {
|
|
24
|
+
if (!inactive)
|
|
25
|
+
return false;
|
|
26
|
+
// Keep the existing owner/disconnect error policy. Only the new receive
|
|
27
|
+
// cancellation must distinguish unrelated failures that race its abort.
|
|
28
|
+
if (!(signal?.reason instanceof SyncReceiveAbortError))
|
|
29
|
+
return true;
|
|
30
|
+
return (error === signal.reason ||
|
|
31
|
+
error instanceof AbortError ||
|
|
32
|
+
(error instanceof Error && error.name === "AbortError"));
|
|
33
|
+
};
|
|
19
34
|
export class DispatchLifecycleRegistry {
|
|
20
35
|
deps;
|
|
21
36
|
activeTargets = new Map();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dispatch-lifecycle.js","sourceRoot":"","sources":["../../../src/sync/dispatch-lifecycle.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,oEAAoE;AACpE,oEAAoE;AACpE,0EAA0E;AAC1E,+DAA+D;AAC/D,EAAE;AACF,4EAA4E;AAC5E,2EAA2E;AAC3E,2EAA2E;AAC3E,mDAAmD;AACnD,wEAAwE;AACxE,oEAAoE;AACpE,gEAAgE;AAChE,EAAE;AACF,+DAA+D;AAC/D,mEAAmE;AACnE,wEAAwE;AACxE,6CAA6C;
|
|
1
|
+
{"version":3,"file":"dispatch-lifecycle.js","sourceRoot":"","sources":["../../../src/sync/dispatch-lifecycle.ts"],"names":[],"mappings":"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"}
|
package/dist/src/sync/index.d.ts
CHANGED
|
@@ -173,7 +173,9 @@ export interface Syncronizer<R extends "u32" | "u64"> {
|
|
|
173
173
|
targets: string[];
|
|
174
174
|
signal?: AbortSignal;
|
|
175
175
|
}): Promise<void> | void;
|
|
176
|
-
onMessage(message: TransportMessage, context: RequestContext
|
|
176
|
+
onMessage(message: TransportMessage, context: RequestContext, options?: {
|
|
177
|
+
signal?: AbortSignal;
|
|
178
|
+
}): Promise<boolean> | boolean;
|
|
177
179
|
onReceivedEntries(properties: {
|
|
178
180
|
entries: EntryWithRefs<any>[];
|
|
179
181
|
from: PublicSignKey;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/sync/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/sync/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -109,6 +109,7 @@ type OutgoingRatelessSyncProcess = {
|
|
|
109
109
|
exhaustedAfterSend: boolean;
|
|
110
110
|
} | undefined;
|
|
111
111
|
startSimpleFallback: () => Promise<void>;
|
|
112
|
+
cancelSimpleFallback: (reason: unknown) => void;
|
|
112
113
|
simpleFallbackStarted: boolean;
|
|
113
114
|
free: (reason?: unknown) => void;
|
|
114
115
|
processController: AbortController;
|
|
@@ -136,6 +137,7 @@ type IncomingRatelessSyncProcess = {
|
|
|
136
137
|
symbols: CodedSymbolInput;
|
|
137
138
|
}) => Promise<IncomingRatelessProcessResult>;
|
|
138
139
|
requestAll: () => Promise<void>;
|
|
140
|
+
drain: () => Promise<void>;
|
|
139
141
|
fallbackToSimple: (reason?: unknown) => Promise<void>;
|
|
140
142
|
free: (reason?: unknown) => void;
|
|
141
143
|
complete: () => void;
|
|
@@ -191,6 +193,7 @@ export declare class RatelessIBLTSynchronizer<D extends "u32" | "u64"> implement
|
|
|
191
193
|
private getIncomingSyncProcessKey;
|
|
192
194
|
private isIncomingSyncGenerationActive;
|
|
193
195
|
private isIncomingSyncProcessActive;
|
|
196
|
+
private settleIncomingReceive;
|
|
194
197
|
onMaybeMissingEntries(properties: {
|
|
195
198
|
entries: Map<string, SyncEntryCoordinates<D>>;
|
|
196
199
|
targets: string[];
|
|
@@ -201,7 +204,10 @@ export declare class RatelessIBLTSynchronizer<D extends "u32" | "u64"> implement
|
|
|
201
204
|
private consumeAuthorizedRatelessResponse;
|
|
202
205
|
private getOrCreateRatelessResponseSlotRow;
|
|
203
206
|
private detachRatelessResponseSlotRow;
|
|
204
|
-
onMessage(message: TransportMessage, context: RequestContext
|
|
207
|
+
onMessage(message: TransportMessage, context: RequestContext, options?: {
|
|
208
|
+
signal?: AbortSignal;
|
|
209
|
+
}): Promise<boolean>;
|
|
210
|
+
private onMessageForReceive;
|
|
205
211
|
onReceivedEntries(properties: {
|
|
206
212
|
entries: EntryWithRefs<any>[];
|
|
207
213
|
from: PublicSignKey;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rateless-iblt.d.ts","sourceRoot":"","sources":["../../../src/sync/rateless-iblt.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,KAAK,aAAa,EAAyB,MAAM,iBAAiB,CAAC;AAQ5E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,EACN,cAAc,EACd,cAAc,EAEd,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnD,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"rateless-iblt.d.ts","sourceRoot":"","sources":["../../../src/sync/rateless-iblt.ts"],"names":[],"mappings":"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"}
|
|
@@ -42,7 +42,7 @@ import { SilentDelivery } from "@peerbit/stream-interface";
|
|
|
42
42
|
import {} from "../exchange-heads.js";
|
|
43
43
|
import { TransportMessage } from "../message.js";
|
|
44
44
|
import {} from "../ranges.js";
|
|
45
|
-
import { DispatchLifecycleRegistry, isOwnershipGenerationActive, isTrackedSessionActive, } from "./dispatch-lifecycle.js";
|
|
45
|
+
import { DispatchLifecycleRegistry, SyncReceiveAbortError, isOwnershipGenerationActive, isSyncDispatchCancellation, isTrackedSessionActive, } from "./dispatch-lifecycle.js";
|
|
46
46
|
import { emitSyncProfileDuration, emitSyncProfileEvent, syncProfileStart, } from "./profile.js";
|
|
47
47
|
import { ResponseMaybeSync, ResponseMaybeSyncCapabilities, SYNC_MESSAGE_PRIORITY, SimpleSyncronizer, } from "./simple.js";
|
|
48
48
|
import { SyncPeerSlotRegistry, } from "./sync-peer-state.js";
|
|
@@ -1206,6 +1206,30 @@ export class RatelessIBLTSynchronizer {
|
|
|
1206
1206
|
!process.controller.signal.aborted &&
|
|
1207
1207
|
this.ingoingSyncProcesses.get(process.key) === process);
|
|
1208
1208
|
}
|
|
1209
|
+
async settleIncomingReceive(process, signal) {
|
|
1210
|
+
const errors = [];
|
|
1211
|
+
try {
|
|
1212
|
+
await process.drain();
|
|
1213
|
+
}
|
|
1214
|
+
catch (error) {
|
|
1215
|
+
errors.push(error);
|
|
1216
|
+
}
|
|
1217
|
+
if (signal.aborted) {
|
|
1218
|
+
try {
|
|
1219
|
+
process.free(signal.reason);
|
|
1220
|
+
}
|
|
1221
|
+
catch (error) {
|
|
1222
|
+
errors.push(error);
|
|
1223
|
+
}
|
|
1224
|
+
}
|
|
1225
|
+
if (errors.length === 1)
|
|
1226
|
+
throw errors[0];
|
|
1227
|
+
if (errors.length > 1) {
|
|
1228
|
+
throw new AggregateError(errors, "incoming receive drain and cleanup failed", {
|
|
1229
|
+
cause: errors[0],
|
|
1230
|
+
});
|
|
1231
|
+
}
|
|
1232
|
+
}
|
|
1209
1233
|
async onMaybeMissingEntries(properties) {
|
|
1210
1234
|
// Capture this rateless open generation synchronously, before any await.
|
|
1211
1235
|
// In particular, signal-less internal repair work must not resume after
|
|
@@ -1554,6 +1578,7 @@ export class RatelessIBLTSynchronizer {
|
|
|
1554
1578
|
let symbolsProduced = startSyncSymbols.length;
|
|
1555
1579
|
let symbolBudgetExhausted = false;
|
|
1556
1580
|
let simpleFallbackPromise;
|
|
1581
|
+
const simpleFallbackController = new AbortController();
|
|
1557
1582
|
const symbolBudget = getOutgoingRatelessSymbolBudget(properties.coordinates.length, startSyncSymbols.length);
|
|
1558
1583
|
let onTargetAbort;
|
|
1559
1584
|
const clear = (reason = new Error("rateless outgoing process closed")) => {
|
|
@@ -1594,7 +1619,14 @@ export class RatelessIBLTSynchronizer {
|
|
|
1594
1619
|
simpleFallbackPromise = Promise.resolve(this.simple.onMaybeMissingHashes({
|
|
1595
1620
|
hashes: properties.outgoingHashes,
|
|
1596
1621
|
targets: [target],
|
|
1597
|
-
|
|
1622
|
+
// Encoder retirement must not cancel an admitted fallback.
|
|
1623
|
+
// A receive awaiting that exact memoized operation can do so.
|
|
1624
|
+
signal: lifecycle.callerSignal
|
|
1625
|
+
? AbortSignal.any([
|
|
1626
|
+
lifecycle.callerSignal,
|
|
1627
|
+
simpleFallbackController.signal,
|
|
1628
|
+
])
|
|
1629
|
+
: simpleFallbackController.signal,
|
|
1598
1630
|
}));
|
|
1599
1631
|
}
|
|
1600
1632
|
return simpleFallbackPromise;
|
|
@@ -1667,6 +1699,7 @@ export class RatelessIBLTSynchronizer {
|
|
|
1667
1699
|
return { symbols, exhaustedAfterSend };
|
|
1668
1700
|
},
|
|
1669
1701
|
startSimpleFallback,
|
|
1702
|
+
cancelSimpleFallback: (reason) => simpleFallbackController.abort(reason),
|
|
1670
1703
|
simpleFallbackStarted: false,
|
|
1671
1704
|
free: clear,
|
|
1672
1705
|
outgoingHashes: properties.outgoingHashes,
|
|
@@ -1877,7 +1910,64 @@ export class RatelessIBLTSynchronizer {
|
|
|
1877
1910
|
releaseLogical();
|
|
1878
1911
|
}
|
|
1879
1912
|
}
|
|
1880
|
-
async onMessage(message, context) {
|
|
1913
|
+
async onMessage(message, context, options) {
|
|
1914
|
+
const signal = options?.signal;
|
|
1915
|
+
if (!signal) {
|
|
1916
|
+
return this.onMessageForReceive(message, context);
|
|
1917
|
+
}
|
|
1918
|
+
let cancel;
|
|
1919
|
+
let settle;
|
|
1920
|
+
const onAbort = () => cancel?.();
|
|
1921
|
+
signal.addEventListener("abort", onAbort, { once: true });
|
|
1922
|
+
const errors = [];
|
|
1923
|
+
let handled = false;
|
|
1924
|
+
try {
|
|
1925
|
+
handled = await this.onMessageForReceive(message, context, {
|
|
1926
|
+
signal,
|
|
1927
|
+
bind: (cancelWork, settleWork) => {
|
|
1928
|
+
cancel = cancelWork;
|
|
1929
|
+
settle = settleWork;
|
|
1930
|
+
if (signal.aborted) {
|
|
1931
|
+
onAbort();
|
|
1932
|
+
}
|
|
1933
|
+
},
|
|
1934
|
+
});
|
|
1935
|
+
}
|
|
1936
|
+
catch (error) {
|
|
1937
|
+
errors.push(error);
|
|
1938
|
+
}
|
|
1939
|
+
finally {
|
|
1940
|
+
// Keep cancellation connected while a bounded fallback's logical
|
|
1941
|
+
// completion still leaves its lower send physically draining.
|
|
1942
|
+
try {
|
|
1943
|
+
await settle?.();
|
|
1944
|
+
}
|
|
1945
|
+
catch (error) {
|
|
1946
|
+
if (!errors.includes(error)) {
|
|
1947
|
+
errors.push(error);
|
|
1948
|
+
}
|
|
1949
|
+
}
|
|
1950
|
+
finally {
|
|
1951
|
+
signal.removeEventListener("abort", onAbort);
|
|
1952
|
+
}
|
|
1953
|
+
}
|
|
1954
|
+
if (errors.length === 1)
|
|
1955
|
+
throw errors[0];
|
|
1956
|
+
if (errors.length > 1) {
|
|
1957
|
+
throw new AggregateError(errors, "sync receive and physical cleanup failed", {
|
|
1958
|
+
cause: errors[0],
|
|
1959
|
+
});
|
|
1960
|
+
}
|
|
1961
|
+
return handled;
|
|
1962
|
+
}
|
|
1963
|
+
async onMessageForReceive(message, context, options) {
|
|
1964
|
+
if (options?.signal.aborted) {
|
|
1965
|
+
return (message instanceof StartSync ||
|
|
1966
|
+
message instanceof MoreSymbols ||
|
|
1967
|
+
message instanceof RequestMoreSymbols ||
|
|
1968
|
+
message instanceof RequestAll ||
|
|
1969
|
+
(await this.simple.onMessage(message, context, options)));
|
|
1970
|
+
}
|
|
1881
1971
|
const profile = this.properties.sync?.profile;
|
|
1882
1972
|
if (message instanceof StartSync) {
|
|
1883
1973
|
const from = context.from;
|
|
@@ -1987,6 +2077,7 @@ export class RatelessIBLTSynchronizer {
|
|
|
1987
2077
|
symbolBudget: getIncomingRatelessSymbolBudget(message.symbols.length),
|
|
1988
2078
|
process: async () => undefined,
|
|
1989
2079
|
requestAll: async () => { },
|
|
2080
|
+
drain: async () => { },
|
|
1990
2081
|
fallbackToSimple: async () => { },
|
|
1991
2082
|
free,
|
|
1992
2083
|
complete,
|
|
@@ -1994,6 +2085,7 @@ export class RatelessIBLTSynchronizer {
|
|
|
1994
2085
|
this.ingoingSyncProcesses.set(key, obj);
|
|
1995
2086
|
onOwnershipAbort = () => free(ownershipLifecycleController.signal.reason);
|
|
1996
2087
|
ownershipLifecycleController.signal.addEventListener("abort", onOwnershipAbort, { once: true });
|
|
2088
|
+
options?.bind(() => controller.abort(options.signal.reason), () => this.settleIncomingReceive(obj, options.signal));
|
|
1997
2089
|
obj.deadlineTimeout = setTimeout(() => {
|
|
1998
2090
|
void obj.fallbackToSimple(new Error("incoming rateless process deadline exceeded"));
|
|
1999
2091
|
}, RATELESS_PROCESS_ABSOLUTE_TIMEOUT_MS);
|
|
@@ -2003,6 +2095,9 @@ export class RatelessIBLTSynchronizer {
|
|
|
2003
2095
|
return true;
|
|
2004
2096
|
}
|
|
2005
2097
|
let requestAllPromise;
|
|
2098
|
+
obj.drain = async () => {
|
|
2099
|
+
await requestAllPromise;
|
|
2100
|
+
};
|
|
2006
2101
|
obj.requestAll = () => {
|
|
2007
2102
|
if (requestAllPromise) {
|
|
2008
2103
|
return requestAllPromise;
|
|
@@ -2033,6 +2128,13 @@ export class RatelessIBLTSynchronizer {
|
|
|
2033
2128
|
});
|
|
2034
2129
|
}
|
|
2035
2130
|
}
|
|
2131
|
+
catch (error) {
|
|
2132
|
+
// Classify before complete() aborts the process as normal cleanup;
|
|
2133
|
+
// that cleanup must not disguise a genuine lower-send failure.
|
|
2134
|
+
if (!isSyncDispatchCancellation(error, controller.signal)) {
|
|
2135
|
+
throw error;
|
|
2136
|
+
}
|
|
2137
|
+
}
|
|
2036
2138
|
finally {
|
|
2037
2139
|
fallbackSendPending = false;
|
|
2038
2140
|
if (this.isIncomingSyncProcessActive(obj)) {
|
|
@@ -2101,7 +2203,8 @@ export class RatelessIBLTSynchronizer {
|
|
|
2101
2203
|
catch (error) {
|
|
2102
2204
|
const processAborted = controller.signal.aborted;
|
|
2103
2205
|
free(error);
|
|
2104
|
-
if (processAborted
|
|
2206
|
+
if ((processAborted &&
|
|
2207
|
+
isSyncDispatchCancellation(error, controller.signal)) ||
|
|
2105
2208
|
!this.isIncomingSyncGenerationActive(ownershipLifecycleController)) {
|
|
2106
2209
|
return true;
|
|
2107
2210
|
}
|
|
@@ -2341,7 +2444,7 @@ export class RatelessIBLTSynchronizer {
|
|
|
2341
2444
|
});
|
|
2342
2445
|
}
|
|
2343
2446
|
catch (error) {
|
|
2344
|
-
if (!this.isIncomingSyncProcessActive(obj)) {
|
|
2447
|
+
if (isSyncDispatchCancellation(error, controller.signal, !this.isIncomingSyncProcessActive(obj))) {
|
|
2345
2448
|
return true;
|
|
2346
2449
|
}
|
|
2347
2450
|
free(error);
|
|
@@ -2374,6 +2477,7 @@ export class RatelessIBLTSynchronizer {
|
|
|
2374
2477
|
!this.isIncomingSyncProcessActive(obj)) {
|
|
2375
2478
|
return true;
|
|
2376
2479
|
}
|
|
2480
|
+
options?.bind(() => obj.controller.abort(options.signal.reason), () => this.settleIncomingReceive(obj, options.signal));
|
|
2377
2481
|
let outProcess;
|
|
2378
2482
|
try {
|
|
2379
2483
|
outProcess = await obj.process(message);
|
|
@@ -2417,7 +2521,11 @@ export class RatelessIBLTSynchronizer {
|
|
|
2417
2521
|
signal: obj.controller.signal,
|
|
2418
2522
|
});
|
|
2419
2523
|
}
|
|
2420
|
-
catch {
|
|
2524
|
+
catch (error) {
|
|
2525
|
+
if (obj.controller.signal.reason instanceof SyncReceiveAbortError &&
|
|
2526
|
+
!isSyncDispatchCancellation(error, obj.controller.signal)) {
|
|
2527
|
+
throw error;
|
|
2528
|
+
}
|
|
2421
2529
|
if (profile) {
|
|
2422
2530
|
emitSyncProfileDuration(profile, sendStartedAt, {
|
|
2423
2531
|
name: "rateless.sendRequestMoreSymbols",
|
|
@@ -2451,6 +2559,11 @@ export class RatelessIBLTSynchronizer {
|
|
|
2451
2559
|
if (context.from?.hashcode() !== obj.target) {
|
|
2452
2560
|
return true;
|
|
2453
2561
|
}
|
|
2562
|
+
options?.bind(() => obj.processController.abort(options.signal.reason), async () => {
|
|
2563
|
+
if (options.signal.aborted) {
|
|
2564
|
+
obj.free(options.signal.reason);
|
|
2565
|
+
}
|
|
2566
|
+
});
|
|
2454
2567
|
const signal = obj.signal;
|
|
2455
2568
|
if (signal.aborted) {
|
|
2456
2569
|
return true;
|
|
@@ -2476,7 +2589,7 @@ export class RatelessIBLTSynchronizer {
|
|
|
2476
2589
|
});
|
|
2477
2590
|
}
|
|
2478
2591
|
catch (error) {
|
|
2479
|
-
if (signal
|
|
2592
|
+
if (isSyncDispatchCancellation(error, signal)) {
|
|
2480
2593
|
return true;
|
|
2481
2594
|
}
|
|
2482
2595
|
throw error;
|
|
@@ -2512,7 +2625,11 @@ export class RatelessIBLTSynchronizer {
|
|
|
2512
2625
|
}
|
|
2513
2626
|
// RequestAll ends only this target's rateless attempt. Other target
|
|
2514
2627
|
// encoders and response authorizations remain independently owned.
|
|
2515
|
-
|
|
2628
|
+
let fallback;
|
|
2629
|
+
options?.bind(() => p.cancelSimpleFallback(options.signal.reason), async () => {
|
|
2630
|
+
await fallback;
|
|
2631
|
+
});
|
|
2632
|
+
fallback = p.startSimpleFallback();
|
|
2516
2633
|
p.free();
|
|
2517
2634
|
await fallback;
|
|
2518
2635
|
return true;
|
|
@@ -2574,13 +2691,17 @@ export class RatelessIBLTSynchronizer {
|
|
|
2574
2691
|
entries: 0,
|
|
2575
2692
|
};
|
|
2576
2693
|
try {
|
|
2694
|
+
const signal = options?.signal
|
|
2695
|
+
? AbortSignal.any([response.signal, options.signal])
|
|
2696
|
+
: response.signal;
|
|
2577
2697
|
responseShipment =
|
|
2578
2698
|
await this.simple.shipAuthorizedMaybeSyncResponse({
|
|
2579
2699
|
hashes: response.authorized,
|
|
2580
2700
|
from,
|
|
2581
2701
|
response: message,
|
|
2582
|
-
signal
|
|
2702
|
+
signal,
|
|
2583
2703
|
});
|
|
2704
|
+
rollbackRatelessAuthorization = signal.aborted;
|
|
2584
2705
|
}
|
|
2585
2706
|
catch (error) {
|
|
2586
2707
|
firstError = error;
|
|
@@ -2610,6 +2731,7 @@ export class RatelessIBLTSynchronizer {
|
|
|
2610
2731
|
leases: simpleLeases,
|
|
2611
2732
|
from,
|
|
2612
2733
|
response: simpleMessage,
|
|
2734
|
+
signal: options?.signal,
|
|
2613
2735
|
});
|
|
2614
2736
|
}
|
|
2615
2737
|
catch (error) {
|
|
@@ -2632,7 +2754,7 @@ export class RatelessIBLTSynchronizer {
|
|
|
2632
2754
|
}
|
|
2633
2755
|
}
|
|
2634
2756
|
}
|
|
2635
|
-
return this.simple.onMessage(message, context);
|
|
2757
|
+
return this.simple.onMessage(message, context, options);
|
|
2636
2758
|
}
|
|
2637
2759
|
onReceivedEntries(properties) {
|
|
2638
2760
|
return this.simple.onReceivedEntries(properties);
|