fix infinite loop when not logging

This commit is contained in:
Mark Whitehorn
2016-05-02 09:28:15 -06:00
committed by Lorenz Meier
parent f40afac448
commit 26596dbe15
+12 -14
View File
@@ -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()
break;
}
}
}
}