public void run()

in grpc-gcp/src/main/java/com/google/cloud/grpc/GcpManagedChannel.java [969:994]


    public void run() {
      if (channel == null) {
        return;
      }
      // Keep minSize channels always connected.
      boolean requestConnection = channelId < minSize;
      ConnectivityState newState = channel.getState(requestConnection);
      logger.finer(
          log("Channel %d state change detected: %s -> %s", channelId, currentState, newState));
      if (newState == ConnectivityState.READY && currentState != ConnectivityState.READY) {
        incReadyChannels();
        saveReadinessTime(System.nanoTime() - connectingStartNanos);
      }
      if (newState != ConnectivityState.READY && currentState == ConnectivityState.READY) {
        decReadyChannels();
      }
      if (newState == ConnectivityState.CONNECTING
          && currentState != ConnectivityState.CONNECTING) {
        connectingStartNanos = System.nanoTime();
      }
      currentState = newState;
      processChannelStateChange(channelId, newState);
      if (newState != ConnectivityState.SHUTDOWN) {
        channel.notifyWhenStateChanged(newState, this);
      }
    }