From 63607288c14f87999e2b3914dd64e690d75f38f9 Mon Sep 17 00:00:00 2001 From: Abseil Team Date: Mon, 16 May 2022 15:25:59 -0700 Subject: Add a stress test for base_internal::ThreadIdentity reuse. PiperOrigin-RevId: 449067700 Change-Id: I972b1736c28d76ed500e9ad6fd15c7a469a5825f --- absl/synchronization/internal/per_thread_sem_test.cc | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'absl/synchronization/internal') diff --git a/absl/synchronization/internal/per_thread_sem_test.cc b/absl/synchronization/internal/per_thread_sem_test.cc index db1184e6..24a6b548 100644 --- a/absl/synchronization/internal/per_thread_sem_test.cc +++ b/absl/synchronization/internal/per_thread_sem_test.cc @@ -174,6 +174,15 @@ TEST_F(PerThreadSemTest, Timeouts) { EXPECT_TRUE(Wait(negative_timeout)); } +TEST_F(PerThreadSemTest, ThreadIdentityReuse) { + // Create a base_internal::ThreadIdentity object and keep reusing it. There + // should be no memory or resource leaks. + for (int i = 0; i < 10000; i++) { + std::thread t([]() { GetOrCreateCurrentThreadIdentity(); }); + t.join(); + } +} + } // namespace } // namespace synchronization_internal -- cgit v1.2.3