diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/envfs.cpp | 6 | ||||
| -rw-r--r-- | src/envfs.h | 9 |
2 files changed, 14 insertions, 1 deletions
diff --git a/src/envfs.cpp b/src/envfs.cpp index a67faf84..4aaef082 100644 --- a/src/envfs.cpp +++ b/src/envfs.cpp @@ -173,7 +173,11 @@ public: void wakeup() { - m_ready = true; + { + std::unique_lock lock(m_mutex); + m_ready = true; + } + m_cv.notify_one(); } diff --git a/src/envfs.h b/src/envfs.h index 8790b071..bbc27005 100644 --- a/src/envfs.h +++ b/src/envfs.h @@ -128,6 +128,15 @@ private: thread = std::thread([&]{ run(); }); } + ~ThreadInfo() + { + if (thread.joinable()) { + stop = true; + wakeup(); + thread.join(); + } + } + void wakeup() { { |
