1
0
Fork 0
firefox/third_party/content_analysis_sdk/demo/atomic_output.h
Daniel Baumann 5e9a113729
Adding upstream version 140.0.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
2025-06-25 09:37:52 +02:00

29 lines
No EOL
685 B
C++

// Copyright 2022 The Chromium Authors.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include <iostream>
#include <sstream>
#include <string>
// Utility class to atomically write outout to std::cout. All data streamed
// the class is automatically sent to std::cout in the dtor. This is useful
// to keep the output of multiple threads writing to std::Cout from
// interleaving.
class AtomicCout {
public:
~AtomicCout() {
flush();
}
std::stringstream& stream() { return stream_; }
void flush() {
std::cout << stream_.str();
stream_.str(std::string());
}
private:
std::stringstream stream_;
};