diff --git a/src/modules/logger/log_writer_file.cpp b/src/modules/logger/log_writer_file.cpp index a54f3a38b7..5f977ee38a 100644 --- a/src/modules/logger/log_writer_file.cpp +++ b/src/modules/logger/log_writer_file.cpp @@ -70,6 +70,10 @@ LogWriterFile::~LogWriterFile() perf_free(_perf_write); perf_free(_perf_fsync); + if (_fd >= 0) { + ::close(_fd); + } + if (_buffer) { delete[] _buffer; } @@ -91,6 +95,8 @@ void LogWriterFile::start_log(const char *filename) if (_buffer == nullptr) { PX4_ERR("Can't create log buffer"); + ::close(_fd); + _fd = -1; _should_run = false; return; } @@ -174,6 +180,10 @@ void LogWriterFile::run() } } + if (_exit_thread) { + break; + } + int poll_count = 0; int written = 0;