Beispiel #1
0
volatile int *
mutex_get_contended_event(mutex_t *lock)
{
    if (!ksynch_var_initialized(&lock->contended_event)) {
        /* We just don't want to clobber an in-use event */
        atomic_compare_exchange_int((int*)&lock->contended_event, -1, (int)0);
    }
    return &lock->contended_event;
}
Beispiel #2
0
/* returns true if var was equal to compare */
static inline bool atomic_compare_exchange(volatile int *var,
                                           int compare, int exchange) {
    return (atomic_compare_exchange_int(var, compare, exchange) == (compare));
}