code: @Override
    public ClientSocket openIfLive()
    {
      if (_state.isClosed()) {
        return null;
      }
  
      ClientSocket stream = openRecycle();
  
      if (stream != null)
        return stream;
  
      long now = CurrentTime.currentTime();
  
      if (isFailed(now))
        return null;
      else if (_state == State.FAIL && _startingCount.get() > 0) {
        // if in fail state, only one thread should try to connect
        return null;
      }
  
      return connect();
    }
docs: Open a stream to the target server object persistence.
  
  @return the socket's read/write pair.