Ignore:
File:
1 edited

Legend:

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

    r64bdacc rc9c1c1cb  
    248248                        // check if the future is available
    249249                        bool available( future_t & this ) {
    250                                 while( this.ptr == 2p ) Pause();
    251250                                return this.ptr == 1p;
    252251                        }
     
    348347                                        struct oneshot * want = expected == 0p ? 1p : 2p;
    349348                                        if(__atomic_compare_exchange_n(&this.ptr, &expected, want, false, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST)) {
    350                                                 if( expected == 0p ) { return 0p; }
     349                                                if( expected == 0p ) { /* paranoid */ verify( this.ptr == 1p); return 0p; }
    351350                                                thread$ * ret = post( *expected, do_unpark );
    352351                                                __atomic_store_n( &this.ptr, 1p, __ATOMIC_SEQ_CST);
Note: See TracChangeset for help on using the changeset viewer.