hold main_fiber::ptr_t in round_robin
remove unecessary local data
use priority_queue