code: public void scheduleHintDelivery(final InetAddress to, final boolean precompact)
      {
          // We should not deliver hints to the same host in 2 different threads
          if (!queuedDeliveries.add(to))
              return;
  
          logger.debug("Scheduling delivery of Hints to {}", to);
  
          executor.execute(new Runnable()
          {
              public void run()
              {
                  try
                  {
                      // If it's an individual node hint replay (triggered by Gossip or via JMX), and not the global scheduled replay
                      // (every 10 minutes), force a major compaction to get rid of the tombstones and expired hints.
                      if (precompact)
                          compact();
  
                      deliverHintsToEndpoint(to);
                  }
                  finally
                  {
                      queuedDeliveries.remove(to);
                  }
              }
          });
      }
docs: /*
  This method is used to deliver hints to a particular endpoint.
  When we learn that some endpoint is back up we deliver the data
  to him via an event driven mechanism.