Report lock

This commit is contained in:
James Cherry 2020-04-12 09:46:30 -07:00
parent 0f91d677e3
commit 85e0254629
2 changed files with 4 additions and 0 deletions

View File

@ -19,6 +19,7 @@
#include <stdio.h>
#include <stdarg.h>
#include <string>
#include <mutex>
#include "DisallowCopyAssign.hh"
struct Tcl_Interp;
@ -113,6 +114,7 @@ protected:
char *buffer_;
// Length of string in buffer.
size_t buffer_length_;
std::mutex buffer_lock_;
private:
DISALLOW_COPY_AND_ASSIGN(Report);

View File

@ -88,6 +88,7 @@ Report::print(const string &str)
void
Report::vprint(const char *fmt, va_list args)
{
std::unique_lock<std::mutex> lock(buffer_lock_);
printToBuffer(fmt, args);
printString(buffer_, buffer_length_);
}
@ -121,6 +122,7 @@ Report::printError(const char *buffer, size_t length)
void
Report::vprintError(const char *fmt, va_list args)
{
std::unique_lock<std::mutex> lock(buffer_lock_);
printToBuffer(fmt, args);
printError(buffer_, buffer_length_);
}