cec: wait for multiple responses, not just for one. don't try to read and write at...
[deb_libcec.git] / src / lib / adapter / USBCECAdapterCommunication.cpp
index 2d8957b05e839004b6c7ce771d080448e9c478ef..80670e42f5c981f01bb2b1aff2c2d6c0fec345f6 100644 (file)
@@ -391,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:
@@ -663,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)
     {