cec: fixed another deadlock on exit
[deb_libcec.git] / src / lib / CECProcessor.cpp
index 4df840d02f48e261cac71d371cdfcda8c9b123d4..1daa7b60d2d8d421f879fa9b530ce07039725b1f 100644 (file)
@@ -118,14 +118,6 @@ CCECProcessor::CCECProcessor(CLibCEC *controller, const char *strDeviceName, con
 CCECProcessor::~CCECProcessor(void)
 {
   m_bStarted = false;
-  StopThread(false);
-
-  if (m_busScan)
-  {
-    m_busScan->StopThread();
-    delete m_busScan;
-  }
-
   m_startCondition.Broadcast();
   StopThread();
 
@@ -304,6 +296,13 @@ void *CCECProcessor::Process(void)
     m_controller->CheckKeypressTimeout();
   }
 
+  if (m_busScan)
+  {
+    m_busScan->StopThread();
+    delete m_busScan;
+    m_busScan = NULL;
+  }
+
   if (m_communication)
     m_communication->Close();