From d68866c8d16b25fc48c5af06e34bebbe9d801246 Mon Sep 17 00:00:00 2001 From: Roland Jax Date: Tue, 21 Oct 2014 16:37:10 +0200 Subject: [PATCH] class EBusLoop: recvBuffer removed. --- ChangeLog | 3 +++ lib/wqueue.h | 10 +++++----- src/baseloop.cpp | 6 +++--- src/ebusloop.cpp | 5 ++--- src/ebusloop.h | 2 -- 5 files changed, 13 insertions(+), 13 deletions(-) diff --git a/ChangeLog b/ChangeLog index c8ef30e9..0f1913ce 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,9 @@ ebusd - ChangeLog ----------------- +2014-10-21 Roland Jax +* class EBusLoop: recvBuffer removed. + 2014-10-09 Roland Jax * class BaseLoop, EBusLoop: polling functionality implemented. * Version changed from 0.3.0 to 0.4.0 diff --git a/lib/wqueue.h b/lib/wqueue.h index be40507b..159f73cf 100644 --- a/lib/wqueue.h +++ b/lib/wqueue.h @@ -30,13 +30,13 @@ public: WQueue() { pthread_mutex_init(&m_mutex, NULL); - pthread_cond_init(&m_condv, NULL); + pthread_cond_init(&m_cond, NULL); } ~WQueue() { pthread_mutex_destroy(&m_mutex); - pthread_cond_destroy(&m_condv); + pthread_cond_destroy(&m_cond); } void add(T item) @@ -45,7 +45,7 @@ public: m_queue.push_back(item); - pthread_cond_signal(&m_condv); + pthread_cond_signal(&m_cond); pthread_mutex_unlock(&m_mutex); } @@ -54,7 +54,7 @@ public: pthread_mutex_lock(&m_mutex); while (m_queue.size() == 0) - pthread_cond_wait(&m_condv, &m_mutex); + pthread_cond_wait(&m_cond, &m_mutex); T item = m_queue.front(); m_queue.pop_front(); @@ -78,7 +78,7 @@ public: private: std::list m_queue; pthread_mutex_t m_mutex; - pthread_cond_t m_condv; + pthread_cond_t m_cond; }; diff --git a/src/baseloop.cpp b/src/baseloop.cpp index 0ab1419a..0ba40665 100644 --- a/src/baseloop.cpp +++ b/src/baseloop.cpp @@ -155,7 +155,7 @@ std::string BaseLoop::decodeMessage(const std::string& data) L.log(bas, trace, " msg: %s", ebusCommand.c_str()); // send busCommand m_ebusloop->addBusCommand(busCommand); - busCommand = m_ebusloop->getBusCommand(); + busCommand->waitSignal(); if (!busCommand->isErrorResult()) { // decode data @@ -208,7 +208,7 @@ std::string BaseLoop::decodeMessage(const std::string& data) L.log(bas, event, " msg: %s", ebusCommand.c_str()); // send busCommand m_ebusloop->addBusCommand(busCommand); - busCommand = m_ebusloop->getBusCommand(); + busCommand->waitSignal(); if (!busCommand->isErrorResult()) { // decode result @@ -277,7 +277,7 @@ std::string BaseLoop::decodeMessage(const std::string& data) L.log(bas, trace, " msg: %s", ebusCommand.c_str()); // send busCommand m_ebusloop->addBusCommand(busCommand); - busCommand = m_ebusloop->getBusCommand(); + busCommand->waitSignal(); if (busCommand->isErrorResult()) { L.log(bas, error, " %s", busCommand->getResultCodeCStr()); diff --git a/src/ebusloop.cpp b/src/ebusloop.cpp index ed6476ed..c4876de9 100644 --- a/src/ebusloop.cpp +++ b/src/ebusloop.cpp @@ -165,8 +165,7 @@ void* EBusLoop::run() if (busResult == RESULT_BUS_ACQUIRED && busCommandActive == true) { L.log(bus, trace, " getBus success"); lookbusretries = 0; - m_bus->sendCommand(); - BusCommand* busCommand = m_bus->recvCommand(); + BusCommand* busCommand = m_bus->sendCommand(); L.log(bus, trace, " %s", busCommand->getResult().c_str()); if (busCommand->isErrorResult() == true && retries < m_retries) { @@ -184,7 +183,7 @@ void* EBusLoop::run() delete busCommand; pollCommandActive = false; } else { - m_recvBuffer.add(busCommand); + busCommand->sendSignal(); } busCommandActive = false; diff --git a/src/ebusloop.h b/src/ebusloop.h index 99801458..d65c4b27 100644 --- a/src/ebusloop.h +++ b/src/ebusloop.h @@ -38,7 +38,6 @@ public: void stop() { m_stop = true; } void addBusCommand(BusCommand* busCommand) { m_sendBuffer.add(busCommand); } - BusCommand* getBusCommand() { return m_recvBuffer.remove(); } void dump(const bool dumpState) { m_bus->setDumpState(dumpState); } @@ -50,7 +49,6 @@ private: Bus* m_bus; bool m_stop; WQueue m_sendBuffer; - WQueue m_recvBuffer; int m_retries; int m_lookbusretries; double m_pollInterval;