anchor.diff:    num _work = 0;
     bool _cancelled = false;
     Completer _cancelledCompleter;
  +  StreamController _cancelController = new StreamController.broadcast();
  +
  +  // The job itself can listen to the cancel event, and do the appropriate
  +  // action.
  +  Stream get onCancel => _cancelController.stream;
   
     /**
      * Starts the [ProgressMonitor] with a [title] and a [maxWork] (determining
  
positive.code:     manager._monitorDone(this, job);
    }
  }
  
negative.code:   set cancelled(bool val) {
      _cancelled = val;
  
      _cancelController.add(true);
  
      if (_cancelledCompleter != null) {
        //_cancelledCompleter.completeError(new UserCancelledException());
        //_cancelledCompleter = null;
      }
    }
  
  