docs: public ClientRequestExecutor checkout(SocketDestination destination) {
          // timing instrumentation (stats only)
          long startTimeNs = 0;
          if(stats != null) {
              startTimeNs = System.nanoTime();
          }
  
          ClientRequestExecutor clientRequestExecutor;
          try {
              clientRequestExecutor = queuedPool.checkout(destination);
          } catch(Exception e) {
              // If this exception caught here is from the nonBlockingPut call
              // within KeyedResourcePool.attemptGrow(), then there is the chance
              // a ClientRequestExector resource will be leaked. Cannot safely
              // deal with this here since clientRequestExecutor is not assigned
              // in this catch. Even if it was, clientRequestExecutore.close()
              // checks in the SocketDestination resource and so is not safe to
              // call.
  
              throw UnreachableStoreException.wrap("Failure while checking out socket for "
                                                  + destination + ": ", e);
          } finally {
              if(stats != null) {
                  stats.recordCheckoutTimeUs(destination, (System.nanoTime() - startTimeNs)
                                                          / Time.NS_PER_US);
                  stats.recordCheckoutQueueLength(destination,
                                                  queuedPool.getBlockingGetsCount(destination));
              }
          }
          return clientRequestExecutor;
      }