Retrying try-lock in synchronization_test to avoid arm64 flakes. (#16436)
diff --git a/runtime/src/iree/base/internal/synchronization_test.cc b/runtime/src/iree/base/internal/synchronization_test.cc
index a44b994..4299f9b 100644
--- a/runtime/src/iree/base/internal/synchronization_test.cc
+++ b/runtime/src/iree/base/internal/synchronization_test.cc
@@ -132,9 +132,10 @@
TEST(MutexTest, Lifetime) {
iree_mutex_t mutex;
iree_mutex_initialize(&mutex);
- bool did_lock = iree_mutex_try_lock(&mutex);
- EXPECT_TRUE(did_lock);
- if (did_lock) iree_mutex_unlock(&mutex);
+ while (!iree_mutex_try_lock(&mutex)) {
+ // NOTE: functions with try in their name may fail spuriously.
+ }
+ iree_mutex_unlock(&mutex);
iree_mutex_lock(&mutex);
iree_mutex_unlock(&mutex);
iree_mutex_deinitialize(&mutex);
@@ -153,9 +154,10 @@
TEST(SlimMutexTest, Lifetime) {
iree_slim_mutex_t mutex;
iree_slim_mutex_initialize(&mutex);
- bool did_lock = iree_slim_mutex_try_lock(&mutex);
- EXPECT_TRUE(did_lock);
- if (did_lock) iree_slim_mutex_unlock(&mutex);
+ while (!iree_slim_mutex_try_lock(&mutex)) {
+ // NOTE: functions with try in their name may fail spuriously.
+ }
+ iree_slim_mutex_unlock(&mutex);
iree_slim_mutex_lock(&mutex);
iree_slim_mutex_unlock(&mutex);
iree_slim_mutex_deinitialize(&mutex);