diff --git a/MQTTSNGateway/src/MQTTSNGWProcess.cpp b/MQTTSNGateway/src/MQTTSNGWProcess.cpp index ac9c915..2e4adfa 100644 --- a/MQTTSNGateway/src/MQTTSNGWProcess.cpp +++ b/MQTTSNGateway/src/MQTTSNGWProcess.cpp @@ -307,7 +307,7 @@ void MultiTaskProcess::waitStop(void) } } -void MultiTaskProcess::threadStoped(void) +void MultiTaskProcess::threadStopped(void) { _mutex.lock(); _stopCount++; diff --git a/MQTTSNGateway/src/MQTTSNGWProcess.h b/MQTTSNGateway/src/MQTTSNGWProcess.h index 3d94f2e..42ff2a2 100644 --- a/MQTTSNGateway/src/MQTTSNGWProcess.h +++ b/MQTTSNGateway/src/MQTTSNGWProcess.h @@ -84,7 +84,7 @@ public: int getParam(const char* parameter, char* value); void run(void); void waitStop(void); - void threadStoped(void); + void threadStopped(void); void attach(Thread* thread); private: diff --git a/MQTTSNGateway/src/MQTTSNGateway.cpp b/MQTTSNGateway/src/MQTTSNGateway.cpp index cac3ac1..1393dfb 100644 --- a/MQTTSNGateway/src/MQTTSNGateway.cpp +++ b/MQTTSNGateway/src/MQTTSNGateway.cpp @@ -38,6 +38,7 @@ Gateway::Gateway(void) _clientList = new ClientList(); _adapterManager = new AdapterManager(this); _topics = new Topics(); + _stopFlg = false; } Gateway::~Gateway() @@ -113,6 +114,7 @@ Gateway::~Gateway() { delete _topics; } + WRITELOG("Gateway is deleted normally.\r\n"); } int Gateway::getParam(const char* parameter, char* value) @@ -309,10 +311,13 @@ void Gateway::run(void) WRITELOG(" CertKey: %s\n", _params.certKey); WRITELOG(" PrivateKey: %s\n\n\n", _params.privateKey); + _stopFlg = false; /* Run Tasks until CTRL+C entred */ MultiTaskProcess::run(); + _stopFlg = true; + /* stop Tasks */ Event* ev = new Event(); ev->setStop(); @@ -331,6 +336,11 @@ void Gateway::run(void) _lightIndicator.allLightOff(); } +bool Gateway::IsStopping(void) +{ + return _stopFlg; +} + EventQue* Gateway::getPacketEventQue() { return &_packetEventQue; diff --git a/MQTTSNGateway/src/MQTTSNGateway.h b/MQTTSNGateway/src/MQTTSNGateway.h index 8d9068b..86c7952 100644 --- a/MQTTSNGateway/src/MQTTSNGateway.h +++ b/MQTTSNGateway/src/MQTTSNGateway.h @@ -199,6 +199,7 @@ public: bool hasSecureConnection(void); Topics* getTopics(void); + bool IsStopping(void); private: GatewayParams _params; @@ -210,6 +211,7 @@ private: SensorNetwork _sensorNetwork; AdapterManager* _adapterManager {nullptr}; Topics* _topics; + bool _stopFlg; }; } diff --git a/MQTTSNGateway/src/linux/Threading.cpp b/MQTTSNGateway/src/linux/Threading.cpp index da8cf34..7c452e7 100644 --- a/MQTTSNGateway/src/linux/Threading.cpp +++ b/MQTTSNGateway/src/linux/Threading.cpp @@ -541,7 +541,7 @@ int Thread::start(void) void Thread::stopProcess(void) { - theMultiTaskProcess->threadStoped(); + theMultiTaskProcess->threadStopped(); } void Thread::stop(void)