| 150 | butil::atomic<int> nevent(0); |
| 151 | |
| 152 | void* waker(void* lock) { |
| 153 | bthread_usleep(10000); |
| 154 | const size_t REP = 100000; |
| 155 | int nwakeup = 0; |
| 156 | butil::Timer tm; |
| 157 | tm.start(); |
| 158 | for (size_t i = 0; i < REP; ++i) { |
| 159 | nwakeup += bthread::futex_wake_private(lock, 1); |
| 160 | } |
| 161 | tm.stop(); |
| 162 | EXPECT_EQ(0, nwakeup); |
| 163 | printf("futex_wake nop = %" PRId64 "ns\n", tm.n_elapsed() / REP); |
| 164 | return NULL; |
| 165 | } |
| 166 | |
| 167 | void* batch_waker(void* lock) { |
| 168 | bthread_usleep(10000); |
nothing calls this directly
no test coverage detected