mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-08-09 00:27:08 +02:00
MEDIUM: sink: start applets asynchronously
Since d9c1d33fa1
("MEDIUM: applet: Add support for async appctx startup
on a thread subset"), it is now possible to delay appctx's init: for that
it is required that the .init callback is defined on the applet.
When the applet will be processed on the first run, applet API will
automatically finish the applet initialization. Thus we explicitly
call appctx_wakeup() on the applet to schedule it for initial run
instead of calling appctx_init() ourselves.
This is done in prevision of the next patch in order to be able to
schedule the applet on a different thread from the one executing
sink_forward_session_create() function.
Note: 'out_free_appctx' label was removed since it is no longer used.
This commit is contained in:
parent
4de03e42cd
commit
09d69eacf8
@ -569,15 +569,10 @@ static struct appctx *sink_forward_session_create(struct sink *sink, struct sink
|
|||||||
if (!appctx)
|
if (!appctx)
|
||||||
goto out_close;
|
goto out_close;
|
||||||
appctx->svcctx = (void *)sft;
|
appctx->svcctx = (void *)sft;
|
||||||
|
appctx_wakeup(appctx);
|
||||||
if (appctx_init(appctx) == -1)
|
|
||||||
goto out_free_appctx;
|
|
||||||
|
|
||||||
return appctx;
|
return appctx;
|
||||||
|
|
||||||
/* Error unrolling */
|
/* Error unrolling */
|
||||||
out_free_appctx:
|
|
||||||
appctx_free_on_early_error(appctx);
|
|
||||||
out_close:
|
out_close:
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user