Ignore:
File:
1 edited

Legend:

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

    r6b33e89 r1756e08  
    1010// Created On       : Fri Jun 2 11:31:25 2017
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Thu Apr 24 22:22:25 2025
    13 // Update Count     : 88
     12// Last Modified On : Wed Jun 17 16:11:35 2020
     13// Update Count     : 75
    1414//
    1515
     
    8484
    8585void insert( alarm_list_t * this, alarm_node_t * n ) {
    86         alarm_node_t & it = iter( *this );
    87         while ( advance( it ) && it.deadline <= n->deadline );
    88         insert_before( it, *n );
     86        alarm_node_t * it = & (*this)`first;
     87        while( it && (n->deadline > it->deadline) ) {
     88                it = & (*it)`next;
     89        }
     90        if ( it ) {
     91                insert_before( *it, *n );
     92        } else {
     93                insert_last(*this, *n);
     94        }
     95
    8996        verify( validate( *this ) );
    9097}
     
    9299alarm_node_t * pop( alarm_list_t * this ) {
    93100        verify( validate( *this ) );
    94         alarm_node_t * head = &first( *this );
     101        alarm_node_t * head = & (*this)`first;
    95102        if( head ) {
    96103                remove(*head);
     
    140147        park();
    141148
    142         /* paranoid */ verify( ! node.set );
    143         /* paranoid */ verify( & next( node ) == 0p );
    144         /* paranoid */ verify( & prev( node ) == 0p );
     149        /* paranoid */ verify( !node.set );
     150        /* paranoid */ verify( & node`next == 0p );
     151        /* paranoid */ verify( & node`prev == 0p );
    145152}
    146153
Note: See TracChangeset for help on using the changeset viewer.