MCPcopy Create free account
hub / github.com/apache/brpc / TEST

Function TEST

test/bthread_key_unittest.cpp:123–147  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

121}
122
123TEST(KeyTest, creating_key_in_parallel) {
124 Counters args;
125 pthread_t th[8];
126 bthread_t bth[8];
127 for (size_t i = 0; i < arraysize(th); ++i) {
128 ASSERT_EQ(0, pthread_create(&th[i], NULL, worker1, &args));
129 }
130 for (size_t i = 0; i < arraysize(bth); ++i) {
131 ASSERT_EQ(0, bthread_start_background(&bth[i], NULL, worker1, &args));
132 }
133 for (size_t i = 0; i < arraysize(th); ++i) {
134 ASSERT_EQ(0, pthread_join(th[i], NULL));
135 }
136 for (size_t i = 0; i < arraysize(bth); ++i) {
137 ASSERT_EQ(0, bthread_join(bth[i], NULL));
138 }
139 ASSERT_EQ(arraysize(th) + arraysize(bth),
140 args.nenterthread.load(butil::memory_order_relaxed));
141 ASSERT_EQ(arraysize(th) + arraysize(bth),
142 args.nleavethread.load(butil::memory_order_relaxed));
143 ASSERT_EQ(NKEY_PER_WORKER * (arraysize(th) + arraysize(bth)),
144 args.ncreate.load(butil::memory_order_relaxed));
145 ASSERT_EQ(NKEY_PER_WORKER * (arraysize(th) + arraysize(bth)),
146 args.ndestroy.load(butil::memory_order_relaxed));
147}
148
149butil::atomic<size_t> seq(1);
150std::vector<size_t> seqs;

Callers

nothing calls this directly

Calls 15

bthread_start_backgroundFunction · 0.85
bthread_joinFunction · 0.85
bthread_key_createFunction · 0.85
berrorFunction · 0.85
bthread_start_urgentFunction · 0.85
bthread_key_deleteFunction · 0.85
bthread_getspecificFunction · 0.85
bthread_setspecificFunction · 0.85
bthread_attr_initFunction · 0.85

Tested by

no test coverage detected