ソースを参照

调度器提供对现有所有协程调用stop token进行打断

3.0.0
tearshark 2年前
コミット
bf671b2193
2個のファイルの変更15行の追加0行の削除
  1. 5
    0
      include/librf/src/scheduler.h
  2. 10
    0
      source/scheduler.cpp

+ 5
- 0
include/librf/src/scheduler.h ファイルの表示



//void break_all(); //void break_all();


/**
* @brief 要求所有已经使用了stop token功能的协程停止
*/
LIBRF_API void request_stop_all_if_possible();

/** /**
* @brief 将一个协程加入到调度器里开始运行。 * @brief 将一个协程加入到调度器里开始运行。
* @details 推荐使用go或者GO这两个宏来启动协程。\n * @details 推荐使用go或者GO这两个宏来启动协程。\n

+ 10
- 0
source/scheduler.cpp ファイルの表示

return task_ptr; 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_() void scheduler_t::cancel_all_task_()
{ {

読み込み中…
キャンセル
保存