@@ -49,9 +49,9 @@ class BazelWorkerDriver {
4949 int ? maxIdleWorkers,
5050 int ? maxWorkers,
5151 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 ;
5555
5656 /// Waits for an available worker, and then sends [WorkRequest] to it.
5757 ///
@@ -111,29 +111,31 @@ class BazelWorkerDriver {
111111 // work queue.
112112 var futureWorker = _spawnWorker ();
113113 _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+ });
137139 }
138140 // Recursively calls itself until one of the bail out conditions are met.
139141 _runWorkQueue ();
0 commit comments