15 #include "absl/base/call_once.h"
20 #include "gtest/gtest.h"
21 #include "absl/base/attributes.h"
22 #include "absl/base/const_init.h"
23 #include "absl/base/thread_annotations.h"
24 #include "absl/synchronization/mutex.h"
43 ++call_once_invoke_count;
47 ++call_once_finished_count;
53 ++running_thread_count;
59 ++call_once_return_count;
66 return running_thread_count == 10 && call_once_invoke_count == 1;
69 TEST(CallOnceTest, ExecutionCount) {
70 std::vector<std::thread>
threads;
73 for (
int i = 0;
i < 10; ++
i) {