Ignore:
File:
1 edited

Legend:

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

    re235429 ra77496cb  
    164164
    165165        struct $thread;
    166         extern void park( void );
    167         extern void unpark( struct $thread * this );
     166        extern void park( __cfaabi_dbg_ctx_param );
     167        extern void unpark( struct $thread * this __cfaabi_dbg_ctx_param2 );
    168168        static inline struct $thread * active_thread ();
    169169
     
    191191                                        /* paranoid */ verify( expected == 0p );
    192192                                        if(__atomic_compare_exchange_n(&this.ptr, &expected, active_thread(), false, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST)) {
    193                                                 park();
     193                                                park( __cfaabi_dbg_ctx );
    194194                                                return true;
    195195                                        }
     
    210210                                else {
    211211                                        if(__atomic_compare_exchange_n(&this.ptr, &expected, 0p, false, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST)) {
    212                                                 unpark( expected );
     212                                                unpark( expected __cfaabi_dbg_ctx2 );
    213213                                                return true;
    214214                                        }
     
    244244                                /* paranoid */ verify( expected == 0p );
    245245                                if(__atomic_compare_exchange_n(&this.ptr, &expected, active_thread(), false, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST)) {
    246                                         park();
     246                                        park( __cfaabi_dbg_ctx );
    247247                                        /* paranoid */ verify( this.ptr == 1p );
    248248                                        return true;
     
    256256                        struct $thread * got = __atomic_exchange_n( &this.ptr, 1p, __ATOMIC_SEQ_CST);
    257257                        if( got == 0p ) return false;
    258                         unpark( got );
     258                        unpark( got __cfaabi_dbg_ctx2 );
    259259                        return true;
    260260                }
     
    357357                                struct oneshot * expected = this.ptr;
    358358                                // was this abandoned?
    359                                 #if defined(__GNUC__) && __GNUC__ >= 7
    360                                         #pragma GCC diagnostic push
    361                                         #pragma GCC diagnostic ignored "-Wfree-nonheap-object"
    362                                 #endif
    363                                         if( expected == 3p ) { free( &this ); return false; }
    364                                 #if defined(__GNUC__) && __GNUC__ >= 7
    365                                         #pragma GCC diagnostic pop
    366                                 #endif
     359                                if( expected == 3p ) { free( &this ); return false; }
    367360
    368361                                /* paranoid */ verify( expected != 1p ); // Future is already fulfilled, should not happen
Note: See TracChangeset for help on using the changeset viewer.