the accepting coroutine yields client handling coroutines
keep the client coroutine alive until they finish