read from socket in separate process
This MR solves the issue I've stumbled upon while building LHCb. Namely, we were reading from the socket at the pace of iterating through the result
generator returned by singularity execute
(once per line of the output available), but in some cases, the number of (relatively small) outputs of lb-wrapcmd
was high enough to fill the buffer, which in turn could cause Resource temporarily unavailable
on connecting to the socket.
This MR changes that by reading from the socket in separate process.
Also, the server now accepts multiple client connections handling them in threads.