LCOV - code coverage report

Current view
top level - src/pool - _worker_value_task.dart
Test
lcov.info
Date
2026-11-07
Legend
Lines
hit
not hit
Branches
taken
not taken
# not executed
HitTotalCoverage
Lines171989.5%
Functions00-
Branches00-
Each row represents a line of source code
LineBranchHitsSource code
1import 'dart:async';
2
3import '../exceptions/squadron_exception.dart';
4import '../stats/perf_counter.dart';
5import '../worker/worker.dart';
6import '_worker_task.dart';
7import 'value_task.dart';
8
9final class WorkerValueTask<T, W extends Worker> extends WorkerTask<T, W>
10 implements ValueTask<T> {
11 /// Creates a new [ValueTask].
122 WorkerValueTask(this._computer, PerfCounter? counter) : super(counter);
13
14 final Future<T> Function(W worker) _computer;
15 final _result = Completer<T>();
16 final _done = Completer<void>();
17
180 @override
190 Future<void> get done => _done.future;
20
211 @override
222 Future<T> get value => _result.future;
23
241 void _failure(SquadronException exception) {
252 if (!_result.isCompleted) {
262 _result.completeError(exception);
27 }
28 }
29
301 void _success(dynamic data) {
312 if (!_result.isCompleted) {
322 _result.complete(data);
33 }
34 }
35
361 @override
37 void cancel([String? message]) {
381 super.cancel(message);
392 _failure(canceledException!);
40 }
41
421 @override
43 Future<bool> execute(W worker) async {
44 try {
451 throwIfCanceled();
462 final res = await _computer(worker);
471 _success(res);
48 return true;
49 } catch (ex, st) {
502 _failure(SquadronException.from(ex, st));
51 return false;
52 }
53 }
54}
Choose Features