Commit fb34c93d by Jamie Madill Committed by Commit Bot

Perf Tests: Add mutex around trace events.

This prevents a race where two threads try to write events simultaneously. Bug: b/172704839 Change-Id: Idd2f3b1c2a393488ea2270b91d579dc8630e59d5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2533496 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: 's avatarShahbaz Youssefi <syoussefi@chromium.org>
parent 3f98564e
......@@ -93,6 +93,8 @@ angle::TraceEventHandle AddPerfTraceEvent(angle::PlatformMethods *platform,
ANGLERenderTest *renderTest = static_cast<ANGLERenderTest *>(platform->context);
std::lock_guard<std::mutex> lock(renderTest->getTraceEventMutex());
uint32_t tid = renderTest->getCurrentThreadSerial();
std::vector<TraceEvent> &buffer = renderTest->getTraceEventBuffer();
......
......@@ -12,6 +12,7 @@
#include <gtest/gtest.h>
#include <mutex>
#include <string>
#include <thread>
#include <unordered_map>
......@@ -171,6 +172,7 @@ class ANGLERenderTest : public ANGLEPerfTest
void onErrorMessage(const char *errorMessage);
uint32_t getCurrentThreadSerial();
std::mutex &getTraceEventMutex() { return mTraceEventMutex; }
protected:
const RenderTestParams &mTestParams;
......@@ -224,6 +226,7 @@ class ANGLERenderTest : public ANGLEPerfTest
std::unique_ptr<angle::Library> mEntryPointsLib;
std::vector<std::thread::id> mThreadIDs;
std::mutex mTraceEventMutex;
};
// Mixins.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment