浏览代码

Output::sendMessage(): lock RtMidiOut::sendMessage() with mutex

Fabian Peter Hammerle 10 年之前
父节点
当前提交
affb35bea9
共有 2 个文件被更改,包括 7 次插入0 次删除
  1. 3 0
      Output.cpp
  2. 4 0
      Output.h

+ 3 - 0
Output.cpp

@@ -6,7 +6,10 @@ namespace midi {
 void Output::sendMessage(const Message& message)
 {
 	std::vector<unsigned char> bytes = message.getBytes();
+
+    sendMessage_mutex.lock();
 	RtMidiOut::sendMessage(&bytes);
+    sendMessage_mutex.unlock();
 }
 
 void Output::sendMessages(const MessageList& messageList)

+ 4 - 0
Output.h

@@ -3,11 +3,15 @@
 #include "RtMidi.h"
 #include "Message.h"
 #include "MessageList.h"
+#include <mutex>
 
 namespace midi {
 
 class Output : public RtMidiOut
 {
+private:
+    std::mutex sendMessage_mutex;
+
 public:
 	void sendMessage(const Message& message);
 	void sendMessages(const MessageList& messageList);