The asyncio hub in #869 doesn't support multiple readers on a single file descriptor.
The mechanism which implements this feature is very confusing to me; additional readers are added in a BaseHub.secondaries data structure, and then promoted to a primary listener if the main listener is removed for some reason. I don't understand how any of it works at all, and so I've failed to get it work.