Changeset 0b33412
- Timestamp:
- Jun 16, 2017, 10:36:49 PM (8 years ago)
- Branches:
- ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, deferred_resn, demangler, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, with_gc
- Children:
- 405c592
- Parents:
- ec35498
- Location:
- src/libcfa
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
src/libcfa/concurrency/alarm.c
rec35498 r0b33412 99 99 100 100 static inline void insert_at( alarm_list_t * this, alarm_node_t * n, __alarm_it_t p ) { 101 assert( !n->next );101 verify( !n->next ); 102 102 if( p == this->tail ) { 103 103 this->tail = &n->next; … … 108 108 *p = n; 109 109 110 LIB_DEBUG_DO( assert( validate( this )) );110 verify( validate( this ) ); 111 111 } 112 112 … … 119 119 insert_at( this, n, it ); 120 120 121 LIB_DEBUG_DO( assert( validate( this )) );121 verify( validate( this ) ); 122 122 } 123 123 … … 131 131 head->next = NULL; 132 132 } 133 LIB_DEBUG_DO( assert( validate( this )) );133 verify( validate( this ) ); 134 134 return head; 135 135 } … … 145 145 n->next = NULL; 146 146 147 LIB_DEBUG_DO( assert( validate( this )) );147 verify( validate( this ) ); 148 148 } 149 149 … … 154 154 } 155 155 156 LIB_DEBUG_DO( assert( validate( this )) );156 verify( validate( this ) ); 157 157 158 158 if( *it ) { remove_at( this, n, it ); } 159 159 160 LIB_DEBUG_DO( assert( validate( this )) );160 verify( validate( this ) ); 161 161 } 162 162 163 163 void register_self( alarm_node_t * this ) { 164 164 disable_interrupts(); 165 assert( !systemProcessor->pending_alarm );165 verify( !systemProcessor->pending_alarm ); 166 166 lock( &systemProcessor->alarm_lock ); 167 LIB_DEBUG_DO( assert( validate( &systemProcessor->alarms ) ) );168 167 { 168 verify( validate( &systemProcessor->alarms ) ); 169 169 bool first = !systemProcessor->alarms.head; 170 170 … … 190 190 disable_interrupts(); 191 191 lock( &systemProcessor->alarm_lock ); 192 LIB_DEBUG_DO( assert( validate( &systemProcessor->alarms ) ) ); 193 remove( &systemProcessor->alarms, this ); 192 { 193 verify( validate( &systemProcessor->alarms ) ); 194 remove( &systemProcessor->alarms, this ); 195 } 194 196 unlock( &systemProcessor->alarm_lock ); 195 197 disable_interrupts(); -
src/libcfa/concurrency/kernel.c
rec35498 r0b33412 173 173 (&this->proc){ cltr, runner }; 174 174 175 LIB_DEBUG_DO( assert( validate( &this->alarms )) );175 verify( validate( &this->alarms ) ); 176 176 } 177 177 … … 215 215 if(readyThread) 216 216 { 217 assert( disable_preempt_count > 0 );217 verify( disable_preempt_count > 0 ); 218 218 219 219 runThread(this, readyThread); 220 220 221 assert( disable_preempt_count > 0 );221 verify( disable_preempt_count > 0 ); 222 222 223 223 //Some actions need to be taken from the kernel … … 387 387 void BlockInternal() { 388 388 disable_interrupts(); 389 assert( disable_preempt_count > 0 );389 verify( disable_preempt_count > 0 ); 390 390 suspend(); 391 assert( disable_preempt_count > 0 );391 verify( disable_preempt_count > 0 ); 392 392 enable_interrupts( __PRETTY_FUNCTION__ ); 393 393 } … … 397 397 this_processor->finish.action_code = Release; 398 398 this_processor->finish.lock = lock; 399 assert( disable_preempt_count > 0 ); 399 400 verify( disable_preempt_count > 0 ); 400 401 suspend(); 401 assert( disable_preempt_count > 0 ); 402 verify( disable_preempt_count > 0 ); 403 402 404 enable_interrupts( __PRETTY_FUNCTION__ ); 403 405 } … … 407 409 this_processor->finish.action_code = Schedule; 408 410 this_processor->finish.thrd = thrd; 409 assert( disable_preempt_count > 0 ); 411 412 verify( disable_preempt_count > 0 ); 410 413 suspend(); 411 assert( disable_preempt_count > 0 ); 414 verify( disable_preempt_count > 0 ); 415 412 416 enable_interrupts( __PRETTY_FUNCTION__ ); 413 417 } … … 418 422 this_processor->finish.lock = lock; 419 423 this_processor->finish.thrd = thrd; 420 assert( disable_preempt_count > 0 ); 424 425 verify( disable_preempt_count > 0 ); 421 426 suspend(); 422 assert( disable_preempt_count > 0 ); 427 verify( disable_preempt_count > 0 ); 428 423 429 enable_interrupts( __PRETTY_FUNCTION__ ); 424 430 } … … 429 435 this_processor->finish.locks = locks; 430 436 this_processor->finish.lock_count = count; 431 assert( disable_preempt_count > 0 ); 437 438 verify( disable_preempt_count > 0 ); 432 439 suspend(); 433 assert( disable_preempt_count > 0 ); 440 verify( disable_preempt_count > 0 ); 441 434 442 enable_interrupts( __PRETTY_FUNCTION__ ); 435 443 } … … 442 450 this_processor->finish.thrds = thrds; 443 451 this_processor->finish.thrd_count = thrd_count; 444 assert( disable_preempt_count > 0 ); 452 453 verify( disable_preempt_count > 0 ); 445 454 suspend(); 446 assert( disable_preempt_count > 0 ); 455 verify( disable_preempt_count > 0 ); 456 447 457 enable_interrupts( __PRETTY_FUNCTION__ ); 448 458 } -
src/libcfa/concurrency/preemption.c
rec35498 r0b33412 107 107 } 108 108 109 LIB_DEBUG_DO(110 assert( validate( alarms ) );109 verify( validate( alarms ) ); 110 LIB_DEBUG_DO( 111 111 len = snprintf( text, 256, "Ticking preemption done\n" ); 112 112 LIB_DEBUG_WRITE( STDERR_FILENO, text, len ); … … 165 165 void disable_interrupts() { 166 166 __attribute__((unused)) unsigned short new_val = __atomic_add_fetch_2( &disable_preempt_count, 1, __ATOMIC_SEQ_CST ); 167 assert( new_val < (unsigned short)65_000 );168 assert( new_val != (unsigned short) 0 );167 verify( new_val < (unsigned short)65_000 ); 168 verify( new_val != (unsigned short) 0 ); 169 169 } 170 170 171 171 void enable_interrupts_noRF() { 172 172 unsigned short prev = __atomic_fetch_add_2( &disable_preempt_count, -1, __ATOMIC_SEQ_CST ); 173 assert( prev != (unsigned short) 0 );173 verify( prev != (unsigned short) 0 ); 174 174 } 175 175 176 176 void enable_interrupts( const char * func ) { 177 177 unsigned short prev = __atomic_fetch_add_2( &disable_preempt_count, -1, __ATOMIC_SEQ_CST ); 178 assert( prev != (unsigned short) 0 );178 verify( prev != (unsigned short) 0 ); 179 179 if( prev == 1 && this_processor->pending_preemption ) { 180 180 this_processor->pending_preemption = false; -
src/libcfa/libhdr/libdebug.h
rec35498 r0b33412 22 22 #else 23 23 #define LIB_DEBUG_DO(x) 24 #define LIB_NO_DEBUG_DO(x) x 24 #define LIB_NO_DEBUG_DO(x) x 25 25 #endif 26 26
Note: See TracChangeset
for help on using the changeset viewer.