anchor.diff:  
     /// Calls `kill` on all worker processes.
     Future terminateWorkers() async {
  -    var existing = new List.from(_allWorkers);
  -    _allWorkers.clear();
  -    await Future.wait(existing.map((futureWorker) async {
  -      (await futureWorker).kill();
  +    for (var worker in _readyWorkers) {
  +      worker.kill();
  +    }
  +    await Future.wait(_spawningWorkers.map((worker) async {
  +      (await worker).kill();
       }));
     }
   
  
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:   final int _maxWorkers;
  
    /// The number of currently active workers.
    int get _numWorkers => _readyWorkers.length + _spawningWorkers.length;
  
    /// Idle worker processes.
    final _idleWorkers = <Process>[];
  
    /// All workers that are fully spawned and ready to handle work.
    final _readyWorkers = <Process>[];
  
    /// All workers that are in the process of being spawned.
    final _spawningWorkers = <Future<Process>>[];
  
    /// Work requests that haven't been started yet.
    final _workQueue = new Queue<WorkRequest>();
  