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

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;
}
}
}
}