Open issue:
channel.hpp
if (!_process_suspend_count) {
// FIXME (sparent): This is calling the process state ender the lock.
if (get_process_state(_process).first == process_state::yield || !_queue.empty()
|| _process_close_queue) {
do_run = true;
} else {
_process_running = false;
do_run = false;
}
}