MINOR: task: provide 3 task_new_* wrappers to simplify the API
We'll need to improve the API to pass other arguments in the future, so
let's start to adapt better to the current use cases. task_new() is used:
- 18 times as task_new(tid_bit)
- 18 times as task_new(MAX_THREADS_MASK)
- 2 times with a single bit (in a loop)
- 1 in the debug code that uses a mask
This patch provides 3 new functions to achieve this:
- task_new_here() to create a task on the calling thread
- task_new_anywhere() to create a task to be run anywhere
- task_new_on() to create a task to run on a specific thread
The change is trivial and will allow us to later concentrate the
required adaptations to these 3 functions only. It's still possible
to call task_new() if needed but a comment was added to encourage the
use of the new ones instead. The debug code was not changed and still
uses it.
diff --git a/src/hlua.c b/src/hlua.c
index df46349..baf503b 100644
--- a/src/hlua.c
+++ b/src/hlua.c
@@ -8251,9 +8251,9 @@
* otherwise, inherit the current thread identifier
*/
if (state_id == 0)
- task = task_new(MAX_THREADS_MASK);
+ task = task_new_anywhere();
else
- task = task_new(tid_bit);
+ task = task_new_here();
if (!task)
goto alloc_error;
@@ -8941,7 +8941,7 @@
ctx->ctx.hlua_apptcp.flags = 0;
/* Create task used by signal to wakeup applets. */
- task = task_new(tid_bit);
+ task = task_new_here();
if (!task) {
SEND_ERR(px, "Lua applet tcp '%s': out of memory.\n",
ctx->rule->arg.hlua_rule->fcn->name);
@@ -9134,7 +9134,7 @@
ctx->ctx.hlua_apphttp.flags |= APPLET_HTTP11;
/* Create task used by signal to wakeup applets. */
- task = task_new(tid_bit);
+ task = task_new_here();
if (!task) {
SEND_ERR(px, "Lua applet http '%s': out of memory.\n",
ctx->rule->arg.hlua_rule->fcn->name);
@@ -9753,7 +9753,7 @@
* We use the same wakeup function than the Lua applet_tcp and
* applet_http. It is absolutely compatible.
*/
- appctx->ctx.hlua_cli.task = task_new(tid_bit);
+ appctx->ctx.hlua_cli.task = task_new_here();
if (!appctx->ctx.hlua_cli.task) {
SEND_ERR(NULL, "Lua cli '%s': out of memory.\n", fcn->name);
goto error;