Ignore:
File:
1 edited

Legend:

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

    rd25b2d6 r4aeaee5  
    2929
    3030        void ^?{}( info_thread(L) & this ){ }
    31 
    32         info_thread(L) *& Back( info_thread(L) * this ) {
    33                 return (info_thread(L) *)Back( (Seqable *)this );
    34         }
    35 
    36         info_thread(L) *& Next( info_thread(L) * this ) {
    37                 return (info_thread(L) *)Next( (Colable *)this );
    38         }
    39 
    40         bool listed( info_thread(L) * this ) {
    41                 return Next( (Colable *)this ) != 0p;
    42         }
    4331}
    4432
     
    7058                abort("A single acquisition lock holder attempted to reacquire the lock resulting in a deadlock.");
    7159        } else if ( owner != 0p && owner != active_thread() ) {
    72                 addTail( blocked_threads, *active_thread() );
     60                append( blocked_threads, active_thread() );
    7361                wait_count++;
    7462                unlock( lock );
     
    10896
    10997void pop_and_set_new_owner( blocking_lock & this ) with( this ) {
    110         $thread * t = &dropHead( blocked_threads );
     98        $thread * t = pop_head( blocked_threads );
    11199        owner = t;
    112100        recursion_count = ( t ? 1 : 0 );
     
    140128    lock( lock __cfaabi_dbg_ctx2 );
    141129        if ( owner != 0p ) {
    142                 addTail( blocked_threads, *t );
     130                append( blocked_threads, t );
    143131                wait_count++;
    144132                unlock( lock );
     
    269257                size_t recursion_count = 0;
    270258                if (i->lock) {
     259                        i->t->link.next = 1p;
    271260                        recursion_count = get_recursion_count(*i->lock);
    272261                        remove_( *i->lock );
Note: See TracChangeset for help on using the changeset viewer.