diff --git a/src/threadloop.cpp b/src/threadloop.cpp index 4cc4fd40427f572badd9a78bf7465d6236794a7d..1f95bb67c91d3da7c0645e095f244cb0694d6b8f 100644 --- a/src/threadloop.cpp +++ b/src/threadloop.cpp @@ -142,7 +142,6 @@ void InterruptedThreadLoop::stop() { ThreadLoop::stop(); - std::lock_guard<std::mutex> lk(mutex_); cv_.notify_one(); } } // namespace ring diff --git a/src/threadloop.h b/src/threadloop.h index a5eb3d65003ea219eb3a108eadb7740946ba977f..33d6bf8ea6c0c36f4be362f07f9668d32a5e34ef 100644 --- a/src/threadloop.h +++ b/src/threadloop.h @@ -86,6 +86,11 @@ public: void stop() override; + void interrupt() noexcept + { + cv_.notify_one(); + } + template <typename Rep, typename Period> void wait_for(const std::chrono::duration<Rep, Period>& rel_time)