• Lukas Jezek's avatar
    map: use control sockets instead of pipe from parent process · 4d6bf767
    Lukas Jezek authored and Tomas Krizek's avatar Tomas Krizek committed
    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
    4d6bf767