浏览代码

允许 coro_worker 进行共享

jcsyshc 3 年之前
父节点
当前提交
35bc54f5ae
共有 2 个文件被更改,包括 3 次插入4 次删除
  1. 2 2
      src/tracker/ndi/ndi_interface.cpp
  2. 1 2
      src/utility/coro_worker.hpp

+ 2 - 2
src/tracker/ndi/ndi_interface.cpp

@@ -466,9 +466,9 @@ namespace sophiar {
 
             // start another coroutine that will reset the ndi_interface
             // if the receiving reply coroutine stopped to work
-            auto watchdog_coro = [this]() -> awaitable<void> {
+            auto watchdog_coro = [this, worker = receive_reply_worker]() -> awaitable<void> {
                 assert(q_this != nullptr);
-                co_await receive_reply_worker->coro_wait_stop();
+                co_await worker->coro_wait_stop();
                 co_await q_this->reset();
                 co_return;
             };

+ 1 - 2
src/utility/coro_worker.hpp

@@ -16,11 +16,10 @@
 
 namespace sophiar {
 
-    // Can not be shared in any way
     class coro_worker {
     public:
 
-        using pointer = std::unique_ptr<coro_worker>;
+        using pointer = std::shared_ptr<coro_worker>;
 
         virtual ~coro_worker() {
             assert(!is_running);