Mainly to help AsyncChannel be less intrusive in the calling thread, other channels just use and discard message.