Restructured genchan to allow for asynchronous producer instantiation.