Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • libcfa/src/concurrency/kernel/private.hfa

    r2284d20 rcd3fc46  
    8888#elif defined(CFA_HAVE_LINUX_RSEQ_H)
    8989        extern "Cforall" {
    90                 extern __attribute__((aligned(64))) __thread volatile struct rseq __cfaabi_rseq;
     90                extern __attribute__((aligned(64))) thread_local volatile struct rseq __cfaabi_rseq;
    9191        }
    9292#else
     
    161161// Blocking acquire
    162162static inline void __atomic_acquire(volatile bool * ll) {
    163         /* paranoid */ verify( ! __preemption_enabled() );
    164         /* paranoid */ verify(ll);
    165 
    166163        while( __builtin_expect(__atomic_exchange_n(ll, (bool)true, __ATOMIC_SEQ_CST), false) ) {
    167164                while(__atomic_load_n(ll, (int)__ATOMIC_RELAXED))
     
    169166        }
    170167        /* paranoid */ verify(*ll);
    171         /* paranoid */ verify( ! __preemption_enabled() );
    172168}
    173169
    174170// Non-Blocking acquire
    175171static inline bool __atomic_try_acquire(volatile bool * ll) {
    176         /* paranoid */ verify( ! __preemption_enabled() );
    177         /* paranoid */ verify(ll);
    178 
    179172        return !__atomic_exchange_n(ll, (bool)true, __ATOMIC_SEQ_CST);
    180173}
     
    182175// Release
    183176static inline void __atomic_unlock(volatile bool * ll) {
    184         /* paranoid */ verify( ! __preemption_enabled() );
    185         /* paranoid */ verify(ll);
    186177        /* paranoid */ verify(*ll);
    187178        __atomic_store_n(ll, (bool)false, __ATOMIC_RELEASE);
Note: See TracChangeset for help on using the changeset viewer.