bugfix: passive worker process doesn't exit

A zero returned by read(2) indicates the socket is closed by peer.
Passive worker process should exit after any one of peers has closed
their socket.