Browse Source

Do not receive messages in onMessage is not set

Paul-Louis Ageneau 5 years ago
parent
commit
4029a9bb4a
2 changed files with 5 additions and 3 deletions
  1. 4 2
      include/rtc/include.hpp
  2. 1 1
      src/channel.cpp

+ 4 - 2
include/rtc/include.hpp

@@ -60,15 +60,17 @@ public:
 		return *this;
 	}
 
-	void operator()(P... args) {
+	void operator()(P... args) const {
 		std::lock_guard<std::recursive_mutex> lock(mutex);
 		if (callback)
 			callback(args...);
 	}
 
+	operator bool() const { return callback ? true : false; }
+
 private:
 	std::function<void(P...)> callback;
-	std::recursive_mutex mutex;
+	mutable std::recursive_mutex mutex;
 };
 }
 

+ 1 - 1
src/channel.cpp

@@ -67,7 +67,7 @@ void Channel::triggerAvailable(size_t available) {
 	if (available == 1)
 		mAvailableCallback();
 
-	while (available--) {
+	while (mMessageCallback && available--) {
 		auto message = receive();
 		if (!message)
 			break;