Skip to content

Commit 6ca4315

Browse files
authored
Merge pull request #239 from Habbus/Prevent_concurrent_ReqFifo_process
Prevent concurrent process calls to the RequestFifo
2 parents b30a22a + e9b229d commit 6ca4315

File tree

2 files changed

+7
-0
lines changed

2 files changed

+7
-0
lines changed

src/chargepoint/requestfifo/RequestFifoManager.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,8 @@ void RequestFifoManager::requestQueued()
9999
/** @brief Process a FIFO request */
100100
void RequestFifoManager::processFifoRequest()
101101
{
102+
std::lock_guard lock(m_process_mutex);
103+
102104
// Check the connection state
103105
if (m_msg_sender.isConnected())
104106
{

src/chargepoint/requestfifo/RequestFifoManager.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ along with OpenOCPP. If not, see <http://www.gnu.org/licenses/>.
1919
#ifndef OPENOCPP_REQUESTFIFOMANAGER_H
2020
#define OPENOCPP_REQUESTFIFOMANAGER_H
2121

22+
#include <mutex>
23+
2224
#include "IRequestFifo.h"
2325
#include "Timer.h"
2426

@@ -99,6 +101,9 @@ class RequestFifoManager : public ocpp::messages::IRequestFifo::IListener
99101
/** @brief Retry count for the current request */
100102
unsigned int m_request_retry_count;
101103

104+
/** @brief Mutex protectiing against concurrent processFifoRequest calls */
105+
std::mutex m_process_mutex;
106+
102107
/** @brief Process a FIFO request */
103108
void processFifoRequest();
104109
};

0 commit comments

Comments
 (0)