From ed5aeab889ef52e86cec36318e9cd8c2b796dccf Mon Sep 17 00:00:00 2001 From: Ryan Macnak Date: Thu, 2 May 2024 06:44:29 +0000 Subject: [PATCH] [test] Fix data race in samples/ffi/async/async_test. TEST=tsan Bug: https://github.com/dart-lang/sdk/issues/55615 Change-Id: I4de5701037640f5b0ae6b176f695907c4c5e1ef5 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/365209 Commit-Queue: Daco Harkes Reviewed-by: Daco Harkes --- runtime/bin/ffi_test/ffi_test_functions_vmspecific.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/runtime/bin/ffi_test/ffi_test_functions_vmspecific.cc b/runtime/bin/ffi_test/ffi_test_functions_vmspecific.cc index 2c95652de67..acb5980d4bc 100644 --- a/runtime/bin/ffi_test/ffi_test_functions_vmspecific.cc +++ b/runtime/bin/ffi_test/ffi_test_functions_vmspecific.cc @@ -480,9 +480,10 @@ intptr_t MyCallbackBlocking(intptr_t a) { auto callback = my_callback_blocking_fp_; // Define storage duration. std::condition_variable cv; bool notified = false; - const Work work = [a, &result, callback, &cv, ¬ified]() { + const Work work = [a, &result, callback, &mutex, &cv, ¬ified]() { result = callback(a); printf("C Da: Notify result ready.\n"); + std::unique_lock lock(mutex); notified = true; cv.notify_one(); };