Delay service thread construction until dependencies are initialized
authorKonrad Lipinski <k.lipinski2@samsung.com>
Thu, 11 Aug 2022 08:30:16 +0000 (10:30 +0200)
committerTomasz Swierczek <t.swierczek@samsung.com>
Mon, 15 May 2023 08:18:41 +0000 (10:18 +0200)
Change-Id: I386c56804eae770e0bb90acbecc705d14010d804

src/server/main/include/service-thread.h

index 2818a655b83437ab6617b76a0386e527330919c2..573e496199b2786ca8fdd80874bc0e5dcaffdbf6 100644 (file)
@@ -42,14 +42,14 @@ namespace SecurityManager {
 
 template <class DerivedService, class Event>
 class ServiceThread {
-    std::thread m_thread;
     std::mutex m_eventQueueMutex;
-    std::queue<Event *> m_eventQueues[Priority::END];
     std::condition_variable m_waitCondition;
-
     bool m_quit = false;
+    std::queue<Event *> m_eventQueues[Priority::END];
+    std::thread m_thread; // initialized last
+
 public:
-    ServiceThread() : m_thread([&]{ this->ThreadLoop(); }) {}
+    ServiceThread() : m_thread(&ServiceThread::ThreadLoop, this) {}
 
     ~ServiceThread() {
         {