Merge branch 'master' into release
[deb_libcec.git] / src / lib / adapter / USBCECAdapterCommunication.cpp
index 1b768539faeb21cd02d8c598ed2c7384f872e09a..80670e42f5c981f01bb2b1aff2c2d6c0fec345f6 100644 (file)
@@ -201,6 +201,7 @@ void *CUSBCECAdapterCommunication::Process(void)
   m_messageProcessor->CreateThread();
 
   cec_command command;
+  command.Clear();
   bool bCommandReceived(false);
   while (!IsStopped())
   {
@@ -390,6 +391,7 @@ bool CUSBCECAdapterCommunication::ParseMessage(const CCECAdapterMessage &msg)
   if (msg.IsEmpty())
     return bEom;
 
+  CLockObject adapterLock(m_mutex);
   switch(msg.Message())
   {
   case MSGCODE_FRAME_START:
@@ -662,7 +664,7 @@ void CUSBCECAdapterCommunication::AddData(uint8_t *data, size_t iLen)
       m_bGotStart = false;
       m_bNextIsEscaped = false;
       m_bHasData = true;
-      m_rcvCondition.Signal();
+      m_rcvCondition.Broadcast();
     }
     else if (m_bNextIsEscaped)
     {