map: use control sockets instead of pipe from parent process
This change allows map() to work with systemd integration. As a bonus the new client implementation is based on Lua cqueues allows caller to wrap map() in worker.corroutine() and get asynchronous execution/avoid blocking main loop. Currently socket communication does not employ timeouts so a hang instance will lead to hang map() call. This does not affect query processing _if_ map() is being run in worker.corroutine. Fixes: #554 Fixes: #620
Showing
- .luacheckrc 1 addition, 0 deletions.luacheckrc
- NEWS 1 addition, 0 deletionsNEWS
- daemon/engine.c 1 addition, 78 deletionsdaemon/engine.c
- daemon/engine.h 0 additions, 7 deletionsdaemon/engine.h
- daemon/lua/distro-preconfig.lua.in 2 additions, 1 deletiondaemon/lua/distro-preconfig.lua.in
- daemon/lua/kluautil.lua 39 additions, 1 deletiondaemon/lua/kluautil.lua
- daemon/lua/postconfig.lua 4 additions, 1 deletiondaemon/lua/postconfig.lua
- daemon/lua/sandbox.lua.in 75 additions, 0 deletionsdaemon/lua/sandbox.lua.in
- daemon/main.c 4 additions, 122 deletionsdaemon/main.c
Please register or sign in to comment