| 577 | } platform_time_worker_t; |
| 578 | |
| 579 | static void *platform_time_first_call(void *opaque) { |
| 580 | platform_time_worker_t *worker = opaque; |
| 581 | (void)atomic_fetch_add_explicit(worker->ready, 1, memory_order_acq_rel); |
| 582 | while (!atomic_load_explicit(worker->go, memory_order_acquire)) { |
| 583 | atomic_signal_fence(memory_order_seq_cst); |
| 584 | } |
| 585 | worker->value = cbm_now_ns(); |
| 586 | return NULL; |
| 587 | } |
| 588 | |
| 589 | TEST(platform_now_ns_concurrent_first_call) { |
| 590 | cbm_thread_t threads[PLATFORM_TIME_THREADS]; |
nothing calls this directly
no test coverage detected