Bladeren bron

允许 coro_worker 进行共享

jcsyshc 3 jaren geleden
bovenliggende
commit
35bc54f5ae
2 gewijzigde bestanden met toevoegingen van 3 en 4 verwijderingen
  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);