void (*func) (void *);
void *data;
mtime_t value, interval;
- vlc_atomic_t overruns;
+ atomic_uint overruns;
};
VLC_NORETURN
{
misses--;
timer->value += misses * timer->interval;
- vlc_atomic_add (&timer->overruns, misses);
+ atomic_fetch_add_explicit (&timer->overruns, misses,
+ memory_order_relaxed);
}
}
timer->data = data;
timer->value = 0;
timer->interval = 0;
- vlc_atomic_set(&timer->overruns, 0);
+ atomic_init(&timer->overruns, 0);
if (vlc_clone (&timer->thread, vlc_timer_thread, timer,
VLC_THREAD_PRIORITY_INPUT))
*/
unsigned vlc_timer_getoverrun (vlc_timer_t timer)
{
- return vlc_atomic_swap (&timer->overruns, 0);
+ return atomic_exchange_explicit (&timer->overruns, 0,
+ memory_order_relaxed);
}