FIX:fixed issue of unsubscribing while stopping the service

This commit is contained in:
Henry Winkel
2023-01-20 09:34:32 +01:00
parent 3474cbd5cb
commit 97d3a10e8c
2 changed files with 12 additions and 6 deletions

View File

@@ -91,13 +91,13 @@ namespace WHISPER {
{
WHISPER::Leave Leave(getParentID(),getOwnID(),getOwnDeviceType(),ownReceivingPort_,myAdress_);
this->publish(Leave.serialize(),WHISPER::MsgTopicsMap[(WHISPER::MsgTopics)Leave.topic_]);
unsubscribe(WHISPER::MsgTopicsMap[WHISPER::MsgTopics::MANAGEMENT]);
// unsubscribe(WHISPER::MsgTopicsMap[WHISPER::MsgTopics::MANAGEMENT]);
if (subscribedTopics.size() > 0) {
for ( std::vector<std::string>::iterator it = subscribedTopics.begin(); it != subscribedTopics.end(); it++) {
unsubscribe(*it);
}
}
// if (subscribedTopics.size() > 0) {
// for ( std::vector<std::string>::iterator it = subscribedTopics.begin(); it != subscribedTopics.end(); it++) {
// unsubscribe(*it);
// }
// }

View File

@@ -40,6 +40,12 @@ namespace WHISPER
void whispercomm::disconnect()
{
if (subscribedTopics.size() > 0) {
for ( std::vector<std::string>::iterator it = subscribedTopics.begin(); it != subscribedTopics.end(); it++) {
unsubscribe(*it);
}
}
stopReceiveThread = true;
if(receiveThread.joinable()) receiveThread.join();
derivedDisconnect();