From 3d0715b3f8e7864104e9cbb29b16e6a6b7568d63 Mon Sep 17 00:00:00 2001 From: Zach Koopmans Date: Tue, 20 Aug 2019 15:05:17 -0700 Subject: [PATCH] Fix flaky futex test. The test is long running (175128 ms or so) which causes timeouts. The test simply makes sure that private futexes can acquire locks concurrently. Dropping current threads and increasing the number of locks each thread tests the same concurrency concerns but drops execution time to ~1411 ms. PiperOrigin-RevId: 264476144 --- test/syscalls/linux/futex.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/syscalls/linux/futex.cc b/test/syscalls/linux/futex.cc index aacbb5e70..d2cbbdb49 100644 --- a/test/syscalls/linux/futex.cc +++ b/test/syscalls/linux/futex.cc @@ -689,10 +689,10 @@ TEST_P(PrivateAndSharedFutexTest, PITryLockConcurrency_NoRandomSave) { std::atomic a = ATOMIC_VAR_INIT(0); const bool is_priv = IsPrivate(); - std::unique_ptr threads[100]; + std::unique_ptr threads[10]; for (size_t i = 0; i < ABSL_ARRAYSIZE(threads); ++i) { threads[i] = absl::make_unique([is_priv, &a] { - for (size_t j = 0; j < 10;) { + for (size_t j = 0; j < 100;) { if (futex_trylock_pi(is_priv, &a) >= 0) { ++j; EXPECT_EQ(a.load() & FUTEX_TID_MASK, gettid());