From 04c3071c16d799a4406c1742f239e8381c00b2b8 Mon Sep 17 00:00:00 2001 From: Serge Pavlov Date: Fri, 26 Feb 2021 17:44:29 +0700 Subject: [PATCH] [Driver] Flush file in locked area When writing report file by option -proc-stat-report some part of output can be written to unlocked file because destructor of raw_fd_ostream calls `flush()`. In high thread contention environment it can result in file operation failure. With this change `flush` is called explicitly when file is locked, so call of `flush()` in the destructor does not cause write to file. --- clang/lib/Driver/Driver.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp index 5aa0011..84bee2a 100644 --- a/clang/lib/Driver/Driver.cpp +++ b/clang/lib/Driver/Driver.cpp @@ -4069,6 +4069,7 @@ void Driver::BuildJobs(Compilation &C) const { return; } OS << Buffer; + OS.flush(); } }); } -- 2.7.4