cec: wait for messages to be transmitted before continueing in CCECProcessor::Transmit()
[deb_libcec.git] / src / lib / CECProcessor.cpp
index 54794c343853a2727d27cd50a56098d439e2bb7f..350958f41d1b1f9342d53731d6c1062d0bb1c934 100644 (file)
@@ -195,8 +195,13 @@ bool CCECProcessor::Transmit(const cec_command &data, bool bWaitForAck /* = true
   CCECAdapterMessagePtr output(new CCECAdapterMessage(data));
 
   CLockObject lock(&m_mutex);
-  if (!m_communication || !m_communication->Write(output))
-    return bReturn;
+  {
+    CLockObject msgLock(&output->mutex);
+    if (!m_communication || !m_communication->Write(output))
+      return bReturn;
+    else
+      output->condition.Wait(&output->mutex);
+  }
 
   if (bWaitForAck)
   {