Use std::cerr for folly/Singleton.cpp error printing
[folly.git] / folly / Singleton.cpp
index fe8d7db7a17b38b4e94e43b557fdd972918a04ab..5e89442c01e0a2692b10fe5e38e0c306a0c9c0e9 100644 (file)
 #include <atomic>
 #include <cstdio>
 #include <cstdlib>
-#include <sstream>
+#include <iostream>
 #include <string>
 
-#include <folly/FileUtil.h>
 #include <folly/ScopeGuard.h>
 
 namespace folly {
@@ -31,13 +30,12 @@ namespace detail {
 
 [[noreturn]] void singletonWarnDoubleRegistrationAndAbort(
     const TypeDescriptor& type) {
-  // Not using LOG(FATAL) or std::cerr because they may not be initialized yet.
-  std::ostringstream o;
-  o << "Double registration of singletons of the same "
-    << "underlying type; check for multiple definitions "
-    << "of type folly::Singleton<" << type.name() << ">" << std::endl;
-  auto s = o.str();
-  writeFull(STDERR_FILENO, s.data(), s.size());
+  // Ensure the availability of std::cerr
+  std::ios_base::Init ioInit;
+  std::cerr << "Double registration of singletons of the same "
+               "underlying type; check for multiple definitions "
+               "of type folly::Singleton<"
+            << type.name() << ">\n";
   std::abort();
 }
 }