Changes in src/libcfa/concurrency/kernel.c [2e9aed4:b158d8f]
- File:
-
- 1 edited
-
src/libcfa/concurrency/kernel.c (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/libcfa/concurrency/kernel.c
r2e9aed4 rb158d8f 242 242 void finishRunning(processor * this) { 243 243 if( this->finish.action_code == Release ) { 244 verify( disable_preempt_count > 1 );245 244 unlock( *this->finish.lock ); 246 245 } … … 249 248 } 250 249 else if( this->finish.action_code == Release_Schedule ) { 251 verify( disable_preempt_count > 1 );252 250 unlock( *this->finish.lock ); 253 251 ScheduleThread( this->finish.thrd ); 254 252 } 255 253 else if( this->finish.action_code == Release_Multi ) { 256 verify( disable_preempt_count > this->finish.lock_count );257 254 for(int i = 0; i < this->finish.lock_count; i++) { 258 255 unlock( *this->finish.locks[i] ); … … 260 257 } 261 258 else if( this->finish.action_code == Release_Multi_Schedule ) { 262 verify( disable_preempt_count > this->finish.lock_count );263 259 for(int i = 0; i < this->finish.lock_count; i++) { 264 260 unlock( *this->finish.locks[i] ); … … 367 363 this_processor->finish.lock = lock; 368 364 369 verify( disable_preempt_count > 1);365 verify( disable_preempt_count > 0 ); 370 366 suspend(); 371 367 verify( disable_preempt_count > 0 ); … … 395 391 this_processor->finish.thrd = thrd; 396 392 397 verify( disable_preempt_count > 1);393 verify( disable_preempt_count > 0 ); 398 394 suspend(); 399 395 verify( disable_preempt_count > 0 ); … … 519 515 __cfaabi_dbg_print_safe("Kernel : Shutdown complete\n"); 520 516 } 521 522 //=============================================================================================523 // Unexpected Terminating logic524 //=============================================================================================525 526 517 527 518 static __spinlock_t kernel_abort_lock; … … 620 611 } 621 612 622 //-----------------------------------------------------------------------------623 // Debug624 __cfaabi_dbg_debug_do(625 struct {626 thread_desc * tail;627 } __cfaabi_dbg_thread_list = { NULL };628 629 void __cfaabi_dbg_thread_register( thread_desc * thrd ) {630 if( !__cfaabi_dbg_thread_list.tail ) {631 __cfaabi_dbg_thread_list.tail = thrd;632 return;633 }634 __cfaabi_dbg_thread_list.tail->dbg_next = thrd;635 thrd->dbg_prev = __cfaabi_dbg_thread_list.tail;636 __cfaabi_dbg_thread_list.tail = thrd;637 }638 639 void __cfaabi_dbg_thread_unregister( thread_desc * thrd ) {640 thread_desc * prev = thrd->dbg_prev;641 thread_desc * next = thrd->dbg_next;642 643 if( next ) { next->dbg_prev = prev; }644 else {645 assert( __cfaabi_dbg_thread_list.tail == thrd );646 __cfaabi_dbg_thread_list.tail = prev;647 }648 649 if( prev ) { prev->dbg_next = next; }650 651 thrd->dbg_prev = NULL;652 thrd->dbg_next = NULL;653 }654 )655 613 // Local Variables: // 656 614 // mode: c //
Note:
See TracChangeset
for help on using the changeset viewer.