/**
* Track a request_t in the "runnable" heap.
- * Higher priorities take precedence, followed by lower sequence numbers
+ * Higher priorities take precedence, followed by higher sequence numbers
*/
static int8_t worker_runnable_cmp(void const *one, void const *two)
{
request_t const *a = one, *b = two;
int ret;
- ret = CMP(b->async->priority, a->async->priority);
+ /* Prefer higher priorities to lower priorities */
+ ret = CMP_PREFER_LARGER(a->async->priority, b->async->priority);
if (ret != 0) return ret;
- ret = CMP(a->async->sequence, b->async->sequence);
+ /* Pefer higher sequence numbers to lower sequence numbers */
+ ret = CMP_PREFER_LARGER(a->async->sequence, b->async->sequence);
if (ret != 0) return ret;
+ /* Prefer earlier requests to later requests */
return fr_time_cmp(a->async->recv_time, b->async->recv_time);
}
(void)unlang_interpret(request);
- now = fr_time();
+ /*
+ * Save getting the time _again_
+ */
+ now = request->async->tracking.last_changed;
}
}