Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • libcfa/src/concurrency/locks.hfa

    rfd365da r76a798d  
    478478        #endif
    479479        lock( lock, node );
    480         while(__atomic_load_n(&held, __ATOMIC_SEQ_CST)) Pause();
    481         __atomic_store_n(&held, true, __ATOMIC_SEQ_CST);
     480        while(held) Pause();
     481        held = true;
     482        // printf("locked\n");
    482483        unlock( lock, node );
    483484        #ifdef __CFA_DEBUG__
     
    487488
    488489static inline void unlock(spin_queue_lock & this) with(this) {
     490        // printf("unlocked\n");
    489491        #ifdef __CFA_DEBUG__
    490492        owner = 0p;
    491493        #endif
    492         __atomic_store_n(&held, false, __ATOMIC_RELEASE);
     494        held = false;
    493495}
    494496
     
    533535        #endif
    534536        lock( lock, node );
    535         while(__atomic_load_n(&held, __ATOMIC_SEQ_CST)) Pause();
    536         __atomic_store_n(&held, true, __ATOMIC_SEQ_CST);
     537        while(held) Pause();
     538        held = true;
    537539        unlock( lock, node );
    538540        #ifdef __CFA_DEBUG__
     
    545547        owner = 0p;
    546548        #endif
    547         __atomic_store_n(&held, false, __ATOMIC_SEQ_CST);
     549        held = false;
    548550}
    549551
     
    586588        #endif
    587589        lock( lock );
    588         while(__atomic_load_n(&held, __ATOMIC_SEQ_CST)) Pause();
    589         __atomic_store_n(&held, true, __ATOMIC_RELEASE);
     590        while(held) Pause();
     591        held = true;
    590592        unlock( lock );
    591593        #ifdef __CFA_DEBUG__
     
    598600        owner = 0p;
    599601        #endif
    600         __atomic_store_n(&held, false, __ATOMIC_RELEASE);
     602        held = false;
    601603}
    602604
Note: See TracChangeset for help on using the changeset viewer.