[clangd] Disable new errs()-tie behavior, it's racy.
authorSam McCall <sam.mccall@gmail.com>
Wed, 10 Jun 2020 07:36:58 +0000 (09:36 +0200)
committerSam McCall <sam.mccall@gmail.com>
Wed, 10 Jun 2020 14:08:37 +0000 (16:08 +0200)
Reviewers: hokein

Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, usaxena95, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D81538

clang-tools-extra/clangd/tool/ClangdMain.cpp

index c43f125..331dd11 100644 (file)
@@ -585,6 +585,8 @@ clangd accepts flags on the commandline, and in the CLANGD_FLAGS environment var
   // Use buffered stream to stderr (we still flush each log message). Unbuffered
   // stream can cause significant (non-deterministic) latency for the logger.
   llvm::errs().SetBuffered();
+  // Don't flush stdout when logging, this would be both slow and racy!
+  llvm::errs().tie(nullptr);
   StreamLogger Logger(llvm::errs(), LogLevel);
   LoggingSession LoggingSession(Logger);
   // Write some initial logs before we start doing any real work.