Reworks Channel pausing behavior
It turns out creating a Channel paused is not good enough; we actually
need to be able to send some messages, then pause, send more messages,
unpause, send even more messages, and then flush.
This is because of subtleties in how RPHI handles queuing. It queues
messages before the Channel is created, then there is a brief period
between Channel creation and process launch where messages aren't
queued but are sent immediately (but previously queued messages remain
in queue), and then new messages are queued again during process
launch, and finally queueing is turned off after process launch.
This changes Channel to have an explicit Pause() API and gets rid
of the recently added ConnectPaused().
11 files changed