anchor.diff:                .then((incoming) {
                   _currentUri = null;
                   incoming.dataDone.then((closing) {
  +                  if (closed) return;
                     if (!closing &&
                         !_dispose &&
                         incoming.headers.persistentConnection &&
  
positive.code:             return connection.createProxyTunnel(
                  uriHost, uriPort, proxy, callback)
                  .then((tunnel) {
                    _activeConnections.add(tunnel);
                    return new _ConnnectionInfo(tunnel, proxy);
                  });
            } else {
              _activeConnections.add(connection);
              return new _ConnnectionInfo(connection, proxy);
            }
          }, onError: (error) {
  
negative.code: 
    // Return a live connection to the idle pool.
    void _returnConnection(_HttpClientConnection connection) {
      var key = connection.key;
      _activeConnections[key].remove(connection);
      if (_activeConnections[key].isEmpty) {
        _activeConnections.remove(key);
      }
      if (_closing) {
        connection.close();
        return;
      }
      _idleConnections
          .putIfAbsent(key, () => new HashSet())
          .add(connection);
      connection.startTimer();
      _updateTimers();
    }
  