Ignore:
File:
1 edited

Legend:

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

    r8cb529e re60e0dc  
    153153
    154154void register_self( alarm_node_t * this ) {
     155        alarm_list_t * alarms = &event_kernel->alarms;
     156
    155157        disable_interrupts();
    156         verify( !systemProcessor->pending_alarm );
    157         lock( &systemProcessor->alarm_lock DEBUG_CTX2 );
     158        lock( &event_kernel->lock DEBUG_CTX2 );
    158159        {
    159                 verify( validate( &systemProcessor->alarms ) );
    160                 bool first = !systemProcessor->alarms.head;
     160                verify( validate( alarms ) );
     161                bool first = !alarms->head;
    161162
    162                 insert( &systemProcessor->alarms, this );
    163                 if( systemProcessor->pending_alarm ) {
    164                         tick_preemption();
    165                 }
     163                insert( alarms, this );
    166164                if( first ) {
    167                         __kernel_set_timer( systemProcessor->alarms.head->alarm - __kernel_get_time() );
     165                        __kernel_set_timer( alarms->head->alarm - __kernel_get_time() );
    168166                }
    169167        }
    170         unlock( &systemProcessor->alarm_lock );
     168        unlock( &event_kernel->lock );
    171169        this->set = true;
    172170        enable_interrupts( DEBUG_CTX );
     
    174172
    175173void unregister_self( alarm_node_t * this ) {
    176         // LIB_DEBUG_PRINT_BUFFER_DECL( STDERR_FILENO, "Kernel : unregister %p start\n", this );
    177174        disable_interrupts();
    178         lock( &systemProcessor->alarm_lock DEBUG_CTX2 );
     175        lock( &event_kernel->lock DEBUG_CTX2 );
    179176        {
    180                 verify( validate( &systemProcessor->alarms ) );
    181                 remove( &systemProcessor->alarms, this );
     177                verify( validate( &event_kernel->alarms ) );
     178                remove( &event_kernel->alarms, this );
    182179        }
    183         unlock( &systemProcessor->alarm_lock );
     180        unlock( &event_kernel->lock );
    184181        enable_interrupts( DEBUG_CTX );
    185182        this->set = false;
    186         // LIB_DEBUG_PRINT_BUFFER_LOCAL( STDERR_FILENO, "Kernel : unregister %p end\n", this );
    187183}
Note: See TracChangeset for help on using the changeset viewer.