mirror of
https://github.com/4gray/iptvnator.git
synced 2026-10-16 06:06:18 -08:00
fix(perf): finalize exact worker capture safely
This commit is contained in:
1 parent
d3fdbaa2ef
commit
554eecfee0
23 files changed
+2685
-181
No files matched your search
@@ -0,0 +1,24 @@
|
||||
export interface WorkerTerminationGenerationInput {
|
||||
readonly capturedGeneration: number | null;
|
||||
readonly currentGeneration: number;
|
||||
readonly recordGeneration: number | null;
|
||||
}
|
||||
|
||||
export interface WorkerTerminationGenerationApi {
|
||||
isCurrent(input: WorkerTerminationGenerationInput): boolean;
|
||||
}
|
||||
|
||||
export function createWorkerTerminationGenerationApi(): WorkerTerminationGenerationApi {
|
||||
const isCaptureGeneration = (value: number | null): value is number =>
|
||||
Number.isSafeInteger(value) && Number(value) > 0;
|
||||
|
||||
return Object.freeze({
|
||||
isCurrent(input: WorkerTerminationGenerationInput): boolean {
|
||||
return (
|
||||
isCaptureGeneration(input.capturedGeneration) &&
|
||||
input.capturedGeneration === input.currentGeneration &&
|
||||
input.capturedGeneration === input.recordGeneration
|
||||
);
|
||||
},
|
||||
});
|
||||
}
|
||||
Reference in new issue
Block a user