@@ -51,6 +51,11 @@ namespace librf | |||
//void break_all(); | |||
/** | |||
* @brief 要求所有已经使用了stop token功能的协程停止 | |||
*/ | |||
LIBRF_API void request_stop_all_if_possible(); | |||
/** | |||
* @brief 将一个协程加入到调度器里开始运行。 | |||
* @details 推荐使用go或者GO这两个宏来启动协程。\n |
@@ -131,6 +131,16 @@ namespace librf | |||
return task_ptr; | |||
} | |||
LIBRF_API void scheduler_t::request_stop_all_if_possible() | |||
{ | |||
scoped_lock<spinlock> __guard(_lock_ready); | |||
for (auto& kv : this->_ready_task) | |||
kv.second->request_stop_if_possible(); | |||
//this->_ready_task.clear(); | |||
this->_timer->clear(); | |||
} | |||
/* | |||
void scheduler_t::cancel_all_task_() | |||
{ |