| 205 | } platform_time_worker_t; |
| 206 | |
| 207 | static void *platform_time_first_call(void *opaque) { |
| 208 | platform_time_worker_t *worker = opaque; |
| 209 | (void)atomic_fetch_add_explicit(worker->ready, 1, memory_order_acq_rel); |
| 210 | while (!atomic_load_explicit(worker->go, memory_order_acquire)) { |
| 211 | atomic_signal_fence(memory_order_seq_cst); |
| 212 | } |
| 213 | worker->value = cbm_now_ns(); |
| 214 | return NULL; |
| 215 | } |
| 216 | |
| 217 | TEST(platform_now_ns_concurrent_first_call) { |
| 218 | cbm_thread_t threads[PLATFORM_TIME_THREADS]; |
nothing calls this directly
no test coverage detected