summaryrefslogtreecommitdiff
path: root/absl/synchronization/internal/per_thread_sem_test.cc
diff options
context:
space:
mode:
authorGravatar Abseil Team <absl-team@google.com>2022-05-16 15:25:59 -0700
committerGravatar Copybara-Service <copybara-worker@google.com>2022-05-16 15:26:49 -0700
commit63607288c14f87999e2b3914dd64e690d75f38f9 (patch)
tree13cc1b40053cc649d6cd95b4d8c84544fb1f382a /absl/synchronization/internal/per_thread_sem_test.cc
parent0eb5ac542531d897646caa04a0ceec564772df3c (diff)
Add a stress test for base_internal::ThreadIdentity reuse.
PiperOrigin-RevId: 449067700 Change-Id: I972b1736c28d76ed500e9ad6fd15c7a469a5825f
Diffstat (limited to 'absl/synchronization/internal/per_thread_sem_test.cc')
-rw-r--r--absl/synchronization/internal/per_thread_sem_test.cc9
1 files changed, 9 insertions, 0 deletions
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