anchor.diff:  class _CommandProcessor {
     final HttpClient client = new HttpClient();
   
  +  Completer _lock;
  +
     Future<Object> post(Uri uri, dynamic params, {bool value: true}) async {
  +    await _getLock();
       HttpClientRequest request = await client.postUrl(uri);
       _setUpRequest(request);
       request.headers.contentType = _contentTypeJson;
  
positive.code: 
    _processResponse(HttpClientResponse response, bool value) async {
      var respBody = await UTF8.decodeStream(response);
  
      try {
        respBody = JSON.decode(respBody);
      } catch (e) {}
  
negative.code:     request.headers.add(HttpHeaders.ACCEPT_CHARSET, UTF8.name);
      request.headers.add(HttpHeaders.CACHE_CONTROL, "no-cache");
    }
  
    Future _getLock() async {
      while (_lock != null) {
        await _lock.future;
      }
      _lock = new Completer();
    }
  
    void _releaseLock() {
      if (_lock == null) {
        throw new StateError('No lock to release');
      }
      _lock.complete();
      _lock = null;
    }
  }
  