LCOV - code coverage report

Current view
top level - src/pool - _worker_value_task.dart
Test
lcov.info
Date
2025-03-26
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].
128 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
214 @override
228 Future<T> get value => _result.future;
23
242 void _failure(SquadronException exception) {
254 if (!_result.isCompleted) {
264 _result.completeError(exception);
27 }
28 }
29
304 void _success(dynamic data) {
318 if (!_result.isCompleted) {
328 _result.complete(data);
33 }
34 }
35
362 @override
37 void cancel([String? message]) {
382 super.cancel(message);
394 _failure(canceledException!);
40 }
41
424 @override
43 Future<bool> execute(W worker) async {
44 try {
454 throwIfCanceled();
468 final res = await _computer(worker);
474 _success(res);
48 return true;
49 } catch (ex, st) {
504 _failure(SquadronException.from(ex, st));
51 return false;
52 }
53 }
54}
Choose Features