mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-11-28 06:11:32 +01:00
Note that the Lua processing is not really thread safe. It provides heavy system which consists to add our own lock function in the Lua code and recompile the library. This system will probably not accepted by maintainers of various distribs. Our main excution point of the Lua is the function lua_resume(). A quick looking on the Lua sources displays a lua_lock() a the start of function and a lua_unlock() at the end of the function. So I conclude that the Lua thread safe mode just perform a mutex around all execution. So I prefer to do this in the HAProxy code, it will be easier for distro maintainers. Note that the HAProxy lua functions rounded by the macro SET_SAFE_LJMP and RESET_SAFE_LJMP manipulates the Lua stack, so it will be careful to set mutex around these functions.