use the channel's ioThread to run the event loop