]> git.sesse.net Git - stockfish/blobdiff - src/misc.cpp
Introduce serialization of accesses to std::cout
[stockfish] / src / misc.cpp
index 1a092c612fd2abc084acc27366d6644622c0d5d3..ababdbc1d7df8d4276e0de838a0ef34e5faf3071 100644 (file)
@@ -146,6 +146,23 @@ public:
 };
 
 
+/// Used to serialize access to std::cout to avoid multiple threads to write at
+/// the same time.
+
+std::ostream& operator<<(std::ostream& os, SyncCout sc) {
+
+  static Mutex m;
+
+  if (sc == io_lock)
+      m.lock();
+
+  if (sc == io_unlock)
+      m.unlock();
+
+  return os;
+}
+
+
 /// Trampoline helper to avoid moving Logger to misc.h
 void start_logger(bool b) { Logger::start(b); }