In class mutex and condition variable except for subscribed_signals map
[apps/agl-service-can-low-level.git] / src / can_reader.cpp
index b836570..4706d92 100644 (file)
@@ -18,6 +18,9 @@
 
 #include "can_reader.hpp"
 
+#include "low-can-binding.hpp"
+#include "can-utils.hpp"
+
 void can_reader(can_bus_dev_t &can_bus_dev, can_bus_t& can_bus)
 {
        can_message_t can_message;
@@ -25,6 +28,11 @@ void can_reader(can_bus_dev_t &can_bus_dev, can_bus_t& can_bus)
        while(can_bus_dev.is_running())
        {
                can_message.convert_from_canfd_frame(can_bus_dev.read());
-               can_bus.push_new_can_message(can_message);
+
+               {
+                       std::lock_guard<std::mutex> can_message_lock(can_bus.get_can_message_mutex());
+                       can_bus.push_new_can_message(can_message);
+               }
+               can_bus.get_new_can_message().notify_one();
        }
 }
\ No newline at end of file