Split message channel to in and out channels.  Buffered message
channels.  Use values instead of pointers in channels.