InterprocessConnection NamedPipe - separate timeouts for read and write?

When you connectToPipe, you pass a pipeReceiveMessageTimeoutMs, which is ‘a timeout length to be used when reading or writing to the pipe’.

The result of pipeReceiveMessageTimeout is used in InterprocessConnection::runThread to decide if the pipe should be closed:

if (thread->threadShouldExit() || ! readNextMessage())
    break;

This mean that if the pipe is not constantly receiving messages, you must set an infinite pipeReceiveMessageTimeout to keep the thread alive and the pipe open.

However, if you set pipeReceiveMessageTimeout to infinite and then fail to send a message, you can end up locking up whichever thread you send the message on.

Would it be a good idea to introduce a pipeSendMessageTimeout instead of using the same timeout for both purposes?