So the problem appears to be that in the new implementation, the write to the pipe is being blocked on every call, until a read has happened. What should be happening is that the write should only block if the pipe is full. Does that help someone know where to look?
does this help ?
A+