anchor.diff:              'These will be closed and new connections started.'));
         
         // Forcefully close leaked connections.
  -      for (var pconn in new List.from(_connections)) {
  -        _destroyConnection(pconn);
  -      }
  +      _forEachConnection(_destroyConnection);
         
         // Start new connections in parallel.
         for (int i = 0; i < settings.minConnections; i++) {
  -        _establishConnection();
  +        _establishConnectionSafely();
         }
       }
     }
  
positive.code:     
      _debug('Established connection. ${pconn.name}');
    }
    
    void _heartbeat() {
      if (_state != running) return;
      
      for (var pconn in new List.from(_connections)) {
        _checkIfLeaked(pconn);
        _checkIdleTimeout(pconn);
        
        // This shouldn't be necessary, but should help fault tolerance. 
        _processWaitQueue();
      }
      
      _checkIfAllConnectionsLeaked();
    }
  
    _checkIdleTimeout(PooledConnectionImpl pconn) {
  
negative.code:     // Start connections in parallel.
      var futures = new Iterable.generate(settings.minConnections,
          (i) => _establishConnection());
        //don't call ...Safely so exception will be sent to caller
  
      await Future.wait(futures)
        .timeout(settings.startTimeout, onTimeout: onTimeout);
  