Ignore:
Timestamp:
Nov 10, 2020, 12:21:21 AM (3 years ago)
Author:
Fangren Yu <f37yu@…>
Branches:
ADT, arm-eh, ast-experimental, enum, forall-pointer-decay, jacob/cs343-translation, master, new-ast-unique-expr, pthread-emulation, qualifiedEnum
Children:
0dd9a5e
Parents:
16ba4a6 (diff), 75baaa3 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge branch 'master' of plg.uwaterloo.ca:software/cfa/cfa-cc

File:
1 edited

Legend:

Unmodified
Added
Removed
  • libcfa/src/concurrency/kernel_private.hfa

    r16ba4a6 r18f0b70  
    3838#endif
    3939;
     40
     41extern bool __preemption_enabled();
    4042
    4143//release/wake-up the following resources
     
    181183//  creating/destroying queues
    182184static inline void ready_schedule_lock(void) with(*__scheduler_lock) {
    183         /*paranoid*/ verify( kernelTLS.this_proc_id );
    184 
    185         unsigned iproc = kernelTLS.this_proc_id->id;
    186         /*paranoid*/ verify(data[iproc].handle == kernelTLS.this_proc_id);
     185        /* paranoid */ verify( ! __preemption_enabled() );
     186        /* paranoid */ verify( kernelTLS().this_proc_id );
     187
     188        unsigned iproc = kernelTLS().this_proc_id->id;
     189        /*paranoid*/ verify(data[iproc].handle == kernelTLS().this_proc_id);
    187190        /*paranoid*/ verify(iproc < ready);
    188191
     
    207210
    208211static inline void ready_schedule_unlock(void) with(*__scheduler_lock) {
    209         /*paranoid*/ verify( kernelTLS.this_proc_id );
    210 
    211         unsigned iproc = kernelTLS.this_proc_id->id;
    212         /*paranoid*/ verify(data[iproc].handle == kernelTLS.this_proc_id);
     212        /* paranoid */ verify( ! __preemption_enabled() );
     213        /* paranoid */ verify( kernelTLS().this_proc_id );
     214
     215        unsigned iproc = kernelTLS().this_proc_id->id;
     216        /*paranoid*/ verify(data[iproc].handle == kernelTLS().this_proc_id);
    213217        /*paranoid*/ verify(iproc < ready);
    214218        /*paranoid*/ verify(data[iproc].lock);
     
    223227#ifdef __CFA_WITH_VERIFY__
    224228        static inline bool ready_schedule_islocked(void) {
    225                 /*paranoid*/ verify( kernelTLS.this_proc_id );
    226                 __processor_id_t * proc = kernelTLS.this_proc_id;
     229                /* paranoid */ verify( ! __preemption_enabled() );
     230                /*paranoid*/ verify( kernelTLS().this_proc_id );
     231                __processor_id_t * proc = kernelTLS().this_proc_id;
    227232                return __scheduler_lock->data[proc->id].owned;
    228233        }
Note: See TracChangeset for help on using the changeset viewer.