X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Flow-can-binding.cpp;h=be2d373780283bfbb5c675879b5f468094427a0c;hb=06acf7a42da0ab605d9dac3c4c0c66f426a06d17;hp=21517903a8e7ea6d372bb06aa749c3a0d2ee3e4e;hpb=5c0c41e87ed5d1a2de7d336465c3beb3987a299f;p=apps%2Fagl-service-can-low-level.git diff --git a/src/low-can-binding.cpp b/src/low-can-binding.cpp index 21517903..be2d3737 100644 --- a/src/low-can-binding.cpp +++ b/src/low-can-binding.cpp @@ -19,6 +19,7 @@ #include "low-can-binding.hpp" #include +#include #include #include #include @@ -34,7 +35,6 @@ extern "C" { - #include #include }; @@ -43,15 +43,6 @@ extern "C" */ const struct afb_binding_interface *binder_interface; -/* - * CAN bus handler pointer. This is the object that will be use to - * initialize each CAN devices specified into the configuration file - * - * It is used by the reading thread also because of its can_message_q_ queue - * that store CAN messages read from the socket. - */ -can_bus_t *can_bus_handler; - /******************************************************************************** * * Subscription and unsubscription @@ -86,7 +77,7 @@ static int subscribe_unsubscribe_signal(struct afb_req request, bool subscribe, { int ret; - // TODO: lock the subscribed_signals when insert/remove + std::lock_guard subscribed_signals_lock(subscribed_signals_mutex); auto ss_i = subscribed_signals.find(sig.genericName); if (ss_i != subscribed_signals.end() && !afb_event_is_valid(ss_i->second)) { @@ -243,13 +234,12 @@ extern "C" fd_conf = afb_daemon_rootdir_open_locale(binder_interface->daemon, "can_bus.json", O_RDONLY, NULL); /* Initialize the CAN bus handler */ - can_bus_t cbh(fd_conf); - can_bus_handler = &cbh; + can_bus_t can_bus_handler(fd_conf); /* Open CAN socket */ - if(can_bus_handler->init_can_dev() == 0) + if(can_bus_handler.init_can_dev() == 0) { - can_bus_handler->start_threads(); + can_bus_handler.start_threads(); return 0; } ERROR(binder_interface, "There was something wrong with CAN device Initialization. Check your config file maybe");