docs: public void processRequestAck(long tick, long dmeVersion)
    {
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
        SibTr.entry(
          tc,
          "processRequestAck",
          new Object[] { Long.valueOf(tick), Long.valueOf(dmeVersion)});
  
      // Only consider non-stale request acks
      if (dmeVersion >= _latestDMEVersion)
      {
        _targetStream.setCursor(tick);
        TickRange tickRange = _targetStream.getNext();
  
        // Make sure that we still have a Q/G
        if (tickRange.type == TickRange.Requested)
        {
          AIRequestedTick airt = (AIRequestedTick) tickRange.value;
  
          // serialize with get repetition and request timeouts
          synchronized (airt)
          {
            // Set the request timer to slow, but only if it is not already slowed
            if (!airt.isSlowed())
            {
              _eagerGetTOM.removeTimeoutEntry(airt);
              airt.setSlowed(true);
              airt.setAckingDMEVersion(dmeVersion);
              long to = airt.getTimeout();
              if (to > 0  || to == _mp.getCustomProperties().get_infinite_timeout())
              {
                _slowedGetTOM.addTimeoutEntry(airt);
              }
            }
          }
        }
        else
        {
          // This can happen if the request ack got in too late and the Q/G was timed out and rejected
        }
      }
  
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
        SibTr.exit(tc, "processRequestAck");
    }