try to fix #33

Looks like RHEL has different scheduling algorithm, which was exploit
the missing syncronization between the parent and child process. Now
there is a pipe between them, where the parent signals the child about
the readyness of the listening socket.