Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 4 additions & 3 deletions common/logger.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,8 @@ void err_exit(const char *fn, int ln, int e, const char *fmt, ...)

Logger::~Logger() {
if (m_settingThread) {
m_settingThread->detach();
terminateSettingThread = true;
m_settingThread->join();
}
}

Expand Down Expand Up @@ -164,13 +165,13 @@ Logger::Priority Logger::getMinPrio()
return getInstance().m_minPrio;
}

[[ noreturn ]] void Logger::settingThread()
void Logger::settingThread()
{
Select select;
DBConnector db("LOGLEVEL_DB", 0);
std::map<std::string, std::shared_ptr<ConsumerStateTable>> selectables;

while (true)
while (!terminateSettingThread)
{
if (selectables.size() < m_settingChangeObservers.size())
{
Expand Down
3 changes: 2 additions & 1 deletion common/logger.h
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,7 @@ class Logger
static void swssPrioNotify(const std::string &component, const std::string &prioStr);
static void swssOutputNotify(const std::string &component, const std::string &outputStr);

ATTRIBUTE_NORTEURN void settingThread();
void settingThread();

LogSettingChangeObservers m_settingChangeObservers;
std::map<std::string, std::string> m_currentPrios;
Expand All @@ -145,6 +145,7 @@ class Logger
std::atomic<Output> m_output = { SWSS_SYSLOG };
std::unique_ptr<std::thread> m_settingThread;
std::mutex m_mutex;
volatile bool terminateSettingThread = false;
};

}
Expand Down