From 7fdd1585ca4f46e3bd5d9efb92cc9e0ea3f73317 Mon Sep 17 00:00:00 2001 From: Oknet Xu Date: Mon, 21 Feb 2022 11:35:17 +0800 Subject: [PATCH] Reuse TSMutex for ts_lua_http_intercept_handler --- plugins/lua/ts_lua_http_intercept.c | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/plugins/lua/ts_lua_http_intercept.c b/plugins/lua/ts_lua_http_intercept.c index d03bd0cbcdb..af867229962 100644 --- a/plugins/lua/ts_lua_http_intercept.c +++ b/plugins/lua/ts_lua_http_intercept.c @@ -22,7 +22,7 @@ static int ts_lua_http_intercept(lua_State *L); static int ts_lua_http_server_intercept(lua_State *L); static int ts_lua_http_intercept_entry(TSCont contp, TSEvent event, void *edata); -static void ts_lua_http_intercept_process(ts_lua_http_intercept_ctx *ictx, TSVConn conn); +static void ts_lua_http_intercept_process(ts_lua_http_intercept_ctx *ictx, TSCont contp, TSVConn conn); static void ts_lua_http_intercept_setup_read(ts_lua_http_intercept_ctx *ictx); static void ts_lua_http_intercept_setup_write(ts_lua_http_intercept_ctx *ictx); static int ts_lua_http_intercept_handler(TSCont contp, TSEvent event, void *edata); @@ -144,7 +144,7 @@ ts_lua_http_intercept_entry(TSCont contp, TSEvent event, void *edata) break; case TS_EVENT_NET_ACCEPT: - ts_lua_http_intercept_process(ictx, (TSVConn)edata); + ts_lua_http_intercept_process(ictx, contp, (TSVConn)edata); break; default: @@ -156,10 +156,9 @@ ts_lua_http_intercept_entry(TSCont contp, TSEvent event, void *edata) } static void -ts_lua_http_intercept_process(ts_lua_http_intercept_ctx *ictx, TSVConn conn) +ts_lua_http_intercept_process(ts_lua_http_intercept_ctx *ictx, TSCont contp, TSVConn conn) { int n; - TSCont contp; lua_State *L; TSMutex mtxp; ts_lua_cont_info *ci; @@ -167,11 +166,9 @@ ts_lua_http_intercept_process(ts_lua_http_intercept_ctx *ictx, TSVConn conn) ci = &ictx->cinfo; mtxp = ictx->cinfo.routine.mctx->mutexp; - contp = TSContCreate(ts_lua_http_intercept_handler, TSMutexCreate()); - TSContDataSet(contp, ictx); - - ci->contp = contp; ci->mutex = TSContMutexGet(contp); + ci->contp = TSContCreate(ts_lua_http_intercept_handler, TSContMutexGet(contp)); + TSContDataSet(ci->contp, ictx); ictx->net_vc = conn;