protected void bind()

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


  protected void bind(ChannelRef channelRef, List<String> affinityKeys) {
    if (channelRef == null || affinityKeys == null) {
      return;
    }
    if (logger.isLoggable(Level.FINEST)) {
      logger.finest(
          log(
              "Binding %d key(s) to channel %d: [%s]",
              affinityKeys.size(), channelRef.getId(), String.join(", ", affinityKeys)));
    }
    for (String affinityKey : affinityKeys) {
      while (affinityKeyToChannelRef.putIfAbsent(affinityKey, channelRef) != null) {
        unbind(Collections.singletonList(affinityKey));
      }
      affinityKeyLastUsed.put(affinityKey, System.nanoTime());
      channelRef.affinityCountIncr();
    }
  }