anchor.diff:        // No need to block here, we want to continue to synchronously drain the
         // work queue.
         var futureWorker = _spawnWorker();
  -      _allWorkers.add(futureWorker);
  +      _spawningWorkers.add(futureWorker);
         futureWorker.then((worker) {
  -        // Somewhat ugly cleanup, we want to replace the `Future<Process>` in
  -        // `_allWorkers` with the real `Process` once we have it.
  -        _allWorkers.remove(futureWorker);
  -        _allWorkers.add(worker);
  +        _spawningWorkers.remove(futureWorker);
  +        _readyWorkers.add(worker);
   
           // Set up the connection and run the worker.
           _workerConnections[worker] = new StdDriverConnection.forWorker(worker);
  
positive.code:         // Clean up things when the worker exits, and retry running the work
          // queue in case there is more work to be done.
          worker.exitCode.then((_) {
            _allWorkers.remove(worker);
            _runWorkQueue();
          });
        });
  
negative.code:         // Note that whenever we spawn a worker we listen for its exit code
          // and clean it up so we don't need to do that here.
          var worker = _idleWorkers.removeLast();
          _readyWorkers.remove(worker);
          worker.kill();
        }
      } catch (e, s) {
  