Skip to content

Commit 03e55ef

Browse files
authored
Refactor scan-packages loop kernel to enable direct call. (#9102)
1 parent 2df14c1 commit 03e55ef

File tree

1 file changed

+23
-18
lines changed

1 file changed

+23
-18
lines changed

app/lib/task/backend.dart

Lines changed: 23 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,9 @@ class TaskBackend {
9999
/// `null` when not started yet.
100100
Completer<void>? _stopped;
101101

102+
ScanPackagesUpdatedState _scanPackagesUpdatedState =
103+
ScanPackagesUpdatedState.init();
104+
102105
TaskBackend(this._db, this._bucket);
103106

104107
/// Start continuous background processes for scheduling of tasks.
@@ -309,26 +312,9 @@ class TaskBackend {
309312
}) async {
310313
abort ??= Completer<void>();
311314

312-
var state = ScanPackagesUpdatedState.init();
313315
bool isAbortedFn() => !claim.valid || abort!.isCompleted;
314316
while (!isAbortedFn()) {
315-
final sinceParamNow = state.since;
316-
317-
final next = await calculateScanPackagesUpdatedLoop(
318-
state,
319-
_db.packages.listUpdatedSince(sinceParamNow),
320-
isAbortedFn,
321-
);
322-
323-
state = next.state;
324-
325-
for (final p in next.packages) {
326-
if (isAbortedFn()) {
327-
return;
328-
}
329-
// Check the package
330-
await trackPackage(p, updateDependents: true);
331-
}
317+
await _runOneScanPackagesUpdate(isAbortedFn: isAbortedFn);
332318

333319
if (isAbortedFn()) {
334320
return;
@@ -341,6 +327,25 @@ class TaskBackend {
341327
}
342328
}
343329

330+
Future<void> _runOneScanPackagesUpdate({
331+
required bool Function() isAbortedFn,
332+
}) async {
333+
final next = await calculateScanPackagesUpdatedLoop(
334+
_scanPackagesUpdatedState,
335+
_db.packages.listUpdatedSince(_scanPackagesUpdatedState.since),
336+
isAbortedFn,
337+
);
338+
_scanPackagesUpdatedState = next.state;
339+
340+
for (final p in next.packages) {
341+
if (isAbortedFn()) {
342+
return;
343+
}
344+
// Check the package
345+
await trackPackage(p, updateDependents: true);
346+
}
347+
}
348+
344349
Future<void> trackPackage(
345350
String packageName, {
346351
bool updateDependents = false,

0 commit comments

Comments
 (0)