Browse Source

fix infinite loop when not logging

sbg
Mark Whitehorn 9 years ago committed by Lorenz Meier
parent
commit
26596dbe15
  1. 26
      src/modules/logger/log_writer.cpp

26
src/modules/logger/log_writer.cpp

@ -103,21 +103,20 @@ void *LogWriter::run_helper(void *context) @@ -103,21 +103,20 @@ void *LogWriter::run_helper(void *context)
void LogWriter::run()
{
// Wait for _should_run flag
while (!_exit_thread) {
bool start = false;
pthread_mutex_lock(&_mtx);
pthread_cond_wait(&_cv, &_mtx);
start = _should_run;
pthread_mutex_unlock(&_mtx);
if (start) {
break;
}
}
while (!_exit_thread) {
// Outer endless loop
// Wait for _should_run flag
while (!_exit_thread) {
bool start = false;
pthread_mutex_lock(&_mtx);
pthread_cond_wait(&_cv, &_mtx);
start = _should_run;
pthread_mutex_unlock(&_mtx);
if (start) {
break;
}
}
int poll_count = 0;
int written = 0;
@ -196,7 +195,6 @@ void LogWriter::run() @@ -196,7 +195,6 @@ void LogWriter::run()
break;
}
}
}
}

Loading…
Cancel
Save