Ignore:
File:
1 edited

Legend:

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

    r8c50aed r09d4b22  
    187187        void enable_interrupts( __cfaabi_dbg_ctx_param ) {
    188188                processor   * proc = kernelTLS.this_processor; // Cache the processor now since interrupts can start happening after the atomic store
     189                thread_desc * thrd = kernelTLS.this_thread;       // Cache the thread now since interrupts can start happening after the atomic store
    189190
    190191                with( kernelTLS.preemption_state ){
     
    208209                                if( proc->pending_preemption ) {
    209210                                        proc->pending_preemption = false;
    210                                         force_yield( __POLL_PREEMPTION );
     211                                        BlockInternal( thrd );
    211212                                }
    212213                        }
     
    306307        signal_block( SIGALRM );
    307308
    308         alarm_stack = __create_pthread( &alarm_thread, alarm_loop, 0p );
     309        alarm_stack = create_pthread( &alarm_thread, alarm_loop, 0p );
    309310}
    310311
     
    393394        // Preemption can occur here
    394395
    395         force_yield( __ALARM_PREEMPTION ); // Do the actual CtxSwitch
     396        BlockInternal( kernelTLS.this_thread ); // Do the actual CtxSwitch
    396397}
    397398
Note: See TracChangeset for help on using the changeset viewer.