{
unlang_interpret_synchronous_t *intps = uctx;
+ fr_assert(intps->yielded > 0);
+ intps->yielded--;
+
fr_heap_insert(&intps->runnable, request);
}
*/
static void _request_yield(request_t *request, UNUSED void *uctx)
{
+ unlang_interpret_synchronous_t *intps = uctx;
+
+ intps->yielded++;
+
RDEBUG3("synchronous request yielded");
}
el = intps->el;
rcode = unlang_interpret(request);
- if (unlang_interpret_is_resumable(request)) intps->yielded++;
while ((dont_wait_for_event = (fr_heap_num_elements(intps->runnable) > 0)) ||
(intps->yielded > 0)) {
continue;
}
- if (unlang_interpret_is_resumable(sub_request)) intps->yielded--;
-
/*
* Continue interpretation until there's nothing
* in the backlog. If this request YIELDs, then
RDEBUG4("<<< interpreter (iteration %i) - %s", iterations,
fr_table_str_by_value(rcode_table, sub_rcode, "<INVALID>"));
- if (unlang_interpret_is_resumable(sub_request)) intps->yielded++;
-
if (sub_request == request) {
rcode = sub_rcode;
/*