Connection::sendOutgoingMessage shouldn't block if the destination port or named pipe is full. On Windows, it's possible to send data asynchronously to a named pipe (in a similar way to how we receive data). On Mac there's unfortunately no way to know when you can send to a mach port without blocking, so we'd have to do some kind of polling solution there.