From b66e8adbefc3c8a360917fb0b8b8023374a63320 Mon Sep 17 00:00:00 2001 From: Dean Lee Date: Wed, 18 Aug 2021 18:08:07 +0800 Subject: [PATCH] BZFile: handle EINTR on BZ2_bzWrite (#21949) --- selfdrive/loggerd/logger.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/selfdrive/loggerd/logger.h b/selfdrive/loggerd/logger.h index f5db320394..96c7a549b3 100644 --- a/selfdrive/loggerd/logger.h +++ b/selfdrive/loggerd/logger.h @@ -39,7 +39,10 @@ class BZFile { } inline void write(void* data, size_t size) { int bzerror; - BZ2_bzWrite(&bzerror, bz_file, data, size); + do { + BZ2_bzWrite(&bzerror, bz_file, data, size); + } while (bzerror == BZ_IO_ERROR && errno == EINTR); + if (bzerror != BZ_OK && !error_logged) { LOGE("BZ2_bzWrite error, bzerror=%d", bzerror); error_logged = true;