- File:
-
- 1 edited
-
libcfa/src/concurrency/kernel.cfa (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
libcfa/src/concurrency/kernel.cfa
rc33c2af r24e321c 196 196 197 197 if( !readyThread ) { 198 ready_schedule_lock();199 198 __cfa_io_flush( this ); 200 ready_schedule_unlock();201 202 199 readyThread = __next_thread_slow( this->cltr ); 203 200 } … … 280 277 281 278 if(this->io.pending && !this->io.dirty) { 282 ready_schedule_lock();283 279 __cfa_io_flush( this ); 284 ready_schedule_unlock();285 280 } 286 281 … … 322 317 323 318 // Don't block if we are done 324 if( __atomic_load_n(&this->do_terminate, __ATOMIC_SEQ_CST) ) { 325 ready_schedule_unlock(); 326 break MAIN_LOOP; 327 } 319 if( __atomic_load_n(&this->do_terminate, __ATOMIC_SEQ_CST) ) break MAIN_LOOP; 328 320 329 321 __STATS( __tls_stats()->ready.sleep.halts++; ) … … 947 939 /* paranoid */ verifyf( it, "Unexpected null iterator, at index %u of %u\n", i, count); 948 940 /* paranoid */ verify( it->local_data->this_stats ); 949 // __print_stats( it->local_data->this_stats, cltr->print_stats, "Processor", it->name, (void*)it );950 941 __tally_stats( cltr->stats, it->local_data->this_stats ); 951 942 it = &(*it)`next; … … 957 948 // this doesn't solve all problems but does solve many 958 949 // so it's probably good enough 959 disable_interrupts();960 950 uint_fast32_t last_size = ready_mutate_lock(); 961 951 … … 965 955 // Unlock the RWlock 966 956 ready_mutate_unlock( last_size ); 967 enable_interrupts();968 957 } 969 958
Note:
See TracChangeset
for help on using the changeset viewer.