signal(XLAT_CTX(exp->call.inst, t->data, t->mctx, NULL, rctx), request, action);
}
+static xlat_action_t xlat_null_resume(UNUSED TALLOC_CTX *ctx, UNUSED fr_dcursor_t *out,
+ UNUSED xlat_ctx_t const *xctx,
+ UNUSED request_t *request, UNUSED fr_value_box_list_t *in)
+{
+ return XLAT_ACTION_DONE;
+}
+
/** Call an xlat's resumption method
*
* @param[in] ctx to allocate value boxes in.
return xa;
case XLAT_ACTION_DONE:
+ unlang_xlat_yield(request, xlat_null_resume, NULL, 0, NULL);
+
fr_dcursor_next(out); /* Wind to the start of this functions output */
RDEBUG2("| --> %pV", fr_dcursor_current(out));
if (node->call.func &&
xlat_exec_rctx_t *rctx;
/*
- *
+ * Allocate and initialize the output context, with value-boxes, exec status, etc.
*/
MEM(rctx = talloc_zero(unlang_interpret_frame_talloc_ctx(request), xlat_exec_rctx_t));
fr_value_box_list_init(&rctx->list);