diff options
Diffstat (limited to 'src/lua/lua_config.c')
-rw-r--r-- | src/lua/lua_config.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/lua/lua_config.c b/src/lua/lua_config.c index cd1287a18..bdb4ce056 100644 --- a/src/lua/lua_config.c +++ b/src/lua/lua_config.c @@ -318,6 +318,7 @@ lua_config_function_callback (struct worker_task *task, GList *args, void *user_ GList *cur; gboolean res = FALSE; + g_mutex_lock (lua_mtx); if (cd->cb_is_ref) { lua_rawgeti (cd->L, LUA_REGISTRYINDEX, cd->callback.ref); } @@ -347,6 +348,7 @@ lua_config_function_callback (struct worker_task *task, GList *args, void *user_ } lua_pop (cd->L, 1); } + g_mutex_unlock (lua_mtx); return res; } @@ -439,6 +441,7 @@ lua_call_post_filters (struct worker_task *task) struct worker_task **ptask; GList *cur; + g_mutex_lock (lua_mtx); cur = task->cfg->post_filters; while (cur) { cd = cur->data; @@ -458,6 +461,7 @@ lua_call_post_filters (struct worker_task *task) } cur = g_list_next (cur); } + g_mutex_unlock (lua_mtx); } static gint @@ -583,6 +587,7 @@ lua_metric_symbol_callback (struct worker_task *task, gpointer ud) struct lua_callback_data *cd = ud; struct worker_task **ptask; + g_mutex_lock (lua_mtx); if (cd->cb_is_ref) { lua_rawgeti (cd->L, LUA_REGISTRYINDEX, cd->callback.ref); } @@ -597,6 +602,7 @@ lua_metric_symbol_callback (struct worker_task *task, gpointer ud) msg_info ("call to %s failed: %s", cd->cb_is_ref ? "local function" : cd->callback.name, lua_tostring (cd->L, -1)); } + g_mutex_unlock (lua_mtx); } static gint |