@@ -49,9 +49,9 @@ class BazelWorkerDriver {
49
49
int ? maxIdleWorkers,
50
50
int ? maxWorkers,
51
51
int ? maxRetries,
52
- }) : _maxIdleWorkers = maxIdleWorkers ?? 4 ,
53
- _maxWorkers = maxWorkers ?? 4 ,
54
- _maxRetries = maxRetries ?? 4 ;
52
+ }) : _maxIdleWorkers = maxIdleWorkers ?? 4 ,
53
+ _maxWorkers = maxWorkers ?? 4 ,
54
+ _maxRetries = maxRetries ?? 4 ;
55
55
56
56
/// Waits for an available worker, and then sends [WorkRequest] to it.
57
57
///
@@ -111,29 +111,31 @@ class BazelWorkerDriver {
111
111
// work queue.
112
112
var futureWorker = _spawnWorker ();
113
113
_spawningWorkers.add (futureWorker);
114
- futureWorker.then ((worker) {
115
- _spawningWorkers.remove (futureWorker);
116
- _readyWorkers.add (worker);
117
- var connection = StdDriverConnection .forWorker (worker);
118
- _workerConnections[worker] = connection;
119
- _runWorker (worker, attempt);
120
-
121
- // When the worker exits we should retry running the work queue in case
122
- // there is more work to be done. This is primarily just a defensive
123
- // thing but is cheap to do.
124
- //
125
- // We don't use `exitCode` because it is null for detached processes (
126
- // which is common for workers).
127
- connection.done.then ((_) {
128
- _idleWorkers.remove (worker);
129
- _readyWorkers.remove (worker);
130
- _runWorkQueue ();
131
- });
132
- }).onError <Object >((e, s) {
133
- _spawningWorkers.remove (futureWorker);
134
- if (attempt.responseCompleter.isCompleted) return ;
135
- attempt.responseCompleter.completeError (e, s);
136
- });
114
+ futureWorker
115
+ .then ((worker) {
116
+ _spawningWorkers.remove (futureWorker);
117
+ _readyWorkers.add (worker);
118
+ var connection = StdDriverConnection .forWorker (worker);
119
+ _workerConnections[worker] = connection;
120
+ _runWorker (worker, attempt);
121
+
122
+ // When the worker exits we should retry running the work queue in case
123
+ // there is more work to be done. This is primarily just a defensive
124
+ // thing but is cheap to do.
125
+ //
126
+ // We don't use `exitCode` because it is null for detached processes (
127
+ // which is common for workers).
128
+ connection.done.then ((_) {
129
+ _idleWorkers.remove (worker);
130
+ _readyWorkers.remove (worker);
131
+ _runWorkQueue ();
132
+ });
133
+ })
134
+ .onError <Object >((e, s) {
135
+ _spawningWorkers.remove (futureWorker);
136
+ if (attempt.responseCompleter.isCompleted) return ;
137
+ attempt.responseCompleter.completeError (e, s);
138
+ });
137
139
}
138
140
// Recursively calls itself until one of the bail out conditions are met.
139
141
_runWorkQueue ();
0 commit comments