From d49b967c5dfad99ec2ad81a83ca59ced38677b81 Mon Sep 17 00:00:00 2001 From: Maxime France-Pillois Date: Tue, 29 Aug 2023 16:31:29 +0100 Subject: [PATCH] [SYCL][Graph] Fixes unitest multithread finalize bug Adds a mutex to prevent races when inserting data into the STL map. --- sycl/unittests/Extensions/CommandGraph.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/sycl/unittests/Extensions/CommandGraph.cpp b/sycl/unittests/Extensions/CommandGraph.cpp index 4d986d0146887..d66a4a8d2eb39 100644 --- a/sycl/unittests/Extensions/CommandGraph.cpp +++ b/sycl/unittests/Extensions/CommandGraph.cpp @@ -1737,18 +1737,21 @@ TEST_F(MultiThreadGraphTest, RecordAddNodesInOrderQueue) { TEST_F(MultiThreadGraphTest, Finalize) { addKernels(Graph); + std::mutex MutexMap; + std::map> GraphsExecMap; auto FinalizeGraph = [&](int ThreadNum) { SyncPoint.wait(); auto GraphExec = Graph.finalize(); + Queue.submit([&](sycl::handler &CGH) { CGH.ext_oneapi_graph(GraphExec); }); + std::lock_guard Guard(MutexMap); GraphsExecMap.insert( std::map>:: value_type(ThreadNum, GraphExec)); - Queue.submit([&](sycl::handler &CGH) { CGH.ext_oneapi_graph(GraphExec); }); }; for (unsigned i = 0; i < NumThreads; ++i) {