add coroutine quit mechanisan