| 111 | } |
| 112 | |
| 113 | void cbm_log_set_sink_ex(cbm_log_sink_fn fn, CBMLogSinkMode mode) { |
| 114 | /* Mode first: a reader that observes the new sink then reads the mode can |
| 115 | * never see the mode belonging to the PREVIOUS sink. */ |
| 116 | atomic_store_explicit(&g_log_sink_mode, mode, memory_order_relaxed); |
| 117 | atomic_store_explicit(&g_log_sink, fn, memory_order_relaxed); |
| 118 | } |
| 119 | |
| 120 | void cbm_log_set_level(CBMLogLevel level) { |
| 121 | atomic_store_explicit(&g_log_level, level, memory_order_relaxed); |
no outgoing calls