On Sun, Jan 21, 2018 at 4:17 PM, Tim Düsterhus <t...@bastelstu.be> wrote: >> Quick question though: does this script actually block HAproxy's >> event loop while waiting for the response from the backend server? > > haproxy's Socket class is documented to be non-blocking, as explained > here: https://www.arpalert.org/haproxy-lua.html#h204 ("Non blocking > design"). Most of my article focused on getting the Socket class of > haproxy to work, instead of using the native Socket class of Lua for > that reason.
OK, so it seems that "non-blocking" in the context of Lua for HAProxy it is actually understood "asynchronous", in the sense that if / when the call would block, the HAProxy event loop takes over and restarts the Lua code only when the blocking operation can be retried without blocking. So for the purpose of developing in Lua, the code seems to be "blocking" and "synchronous", but behind the scenes HAProxy controls the Lua VM to transform the Lua code exeguhiot into and "asynchronous". Thanks, Ciprian.