anchor.diff:      _waitingJobs.add(job);
   
       if (!isJobRunning) {
  -      _scheduleNextJob();
  +      _runNextJob();
       }
       return completer.future;
     }
  
positive.code:           _jobFinished(_runningJob);
            if (_runningJob != null) _runningJob.done();
            _runningJob = null;
            _scheduleNextJob();
          });
        } catch (e, st) {
          _logger.severe('Error running job ${_runningJob}', e, st);
          _runningJob = null;
          _scheduleNextJob();
        }
      });
    }
  
negative.code:    */
    Stream<JobManagerEvent> get onChange => _controller.stream;
  
    void _runNextJob() {
      if (_waitingJobs.isEmpty) return;
  
      _runningJob = _waitingJobs.removeAt(0);
  
      Timer.run(() {
        _ProgressMonitorImpl monitor = new _ProgressMonitorImpl(this, _runningJob);
  