MINOR: lua: core: can yield an execution stack
This patch provides a yield function. This function permits to
give back the hand at the HAProxy scheduler. It is used when the
lua processing consumes a lot of time.
diff --git a/src/hlua.c b/src/hlua.c
index 4462570..8b72763 100644
--- a/src/hlua.c
+++ b/src/hlua.c
@@ -2491,6 +2491,15 @@
return MAY_LJMP(_hlua_sleep(L, delay));
}
+/* This functionis an LUA binding. it permits to give back
+ * the hand at the HAProxy scheduler. It is used when the
+ * LUA processing consumes a lot of time.
+ */
+__LJMP static int hlua_yield(lua_State *L)
+{
+ return MAY_LJMP(_hlua_sleep(L, 0));
+}
+
/* This function change the nice of the currently executed
* task. It is used set low or high priority at the current
* task.
@@ -3325,6 +3334,7 @@
hlua_class_function(gL.T, "register_task", hlua_register_task);
hlua_class_function(gL.T, "register_fetches", hlua_register_fetches);
hlua_class_function(gL.T, "register_converters", hlua_register_converters);
+ hlua_class_function(gL.T, "yield", hlua_yield);
hlua_class_function(gL.T, "set_nice", hlua_setnice);
hlua_class_function(gL.T, "sleep", hlua_sleep);
hlua_class_function(gL.T, "msleep", hlua_msleep);