Changeset b4b63e8
- Timestamp:
 - Oct 1, 2020, 2:41:30 PM (5 years ago)
 - Branches:
 - ADT, arm-eh, ast-experimental, enum, forall-pointer-decay, jacob/cs343-translation, master, new-ast-unique-expr, pthread-emulation, qualifiedEnum
 - Children:
 - dd53f75
 - Parents:
 - e235429
 - Location:
 - libcfa/src/concurrency
 - Files:
 - 
      
- 5 edited
 
- 
          
  invoke.h (modified) (1 diff)
 - 
          
  io.cfa (modified) (1 diff)
 - 
          
  kernel.cfa (modified) (3 diffs)
 - 
          
  kernel/startup.cfa (modified) (1 diff)
 - 
          
  thread.cfa (modified) (2 diffs)
 
 
Legend:
- Unmodified
 - Added
 - Removed
 
- 
      
libcfa/src/concurrency/invoke.h
re235429 rb4b63e8 190 190 } node; 191 191 192 #if def __CFA_DEBUG__192 #if defined( __CFA_WITH_VERIFY__ ) 193 193 unsigned long long canary; 194 194 #endif  - 
      
libcfa/src/concurrency/io.cfa
re235429 rb4b63e8 97 97 98 98 if(nextt) { 99 unpark( nextt __cfaabi_dbg_ctx2);99 unpark( nextt ); 100 100 enable_interrupts( __cfaabi_dbg_ctx ); 101 101 return true;  - 
      
libcfa/src/concurrency/kernel.cfa
re235429 rb4b63e8 251 251 /* paranoid */ verify( ! kernelTLS.preemption_state.enabled ); 252 252 /* paranoid */ verify( kernelTLS.this_thread == thrd_dst ); 253 /* paranoid */ verify( thrd_dst->context.SP ); 253 254 /* paranoid */ verifyf( ((uintptr_t)thrd_dst->context.SP) < ((uintptr_t)__get_stack(thrd_dst->curr_cor)->base ) || thrd_dst->curr_cor == proc_cor, "ERROR : Destination $thread %p has been corrupted.\n StackPointer too small.\n", thrd_dst ); // add escape condition if we are setting up the processor 254 255 /* paranoid */ verifyf( ((uintptr_t)thrd_dst->context.SP) > ((uintptr_t)__get_stack(thrd_dst->curr_cor)->limit) || thrd_dst->curr_cor == proc_cor, "ERROR : Destination $thread %p has been corrupted.\n StackPointer too large.\n", thrd_dst ); // add escape condition if we are setting up the processor 256 /* paranoid */ verify( 0x0D15EA5E0D15EA5E == thrd_dst->canary ); 257 255 258 256 259 257 260 // set context switch to the thread that the processor is executing 258 verify( thrd_dst->context.SP );259 261 __cfactx_switch( &proc_cor->context, &thrd_dst->context ); 260 262 // when __cfactx_switch returns we are back in the processor coroutine 261 263 264 /* paranoid */ verify( 0x0D15EA5E0D15EA5E == thrd_dst->canary ); 262 265 /* paranoid */ verifyf( ((uintptr_t)thrd_dst->context.SP) > ((uintptr_t)__get_stack(thrd_dst->curr_cor)->limit), "ERROR : Destination $thread %p has been corrupted.\n StackPointer too large.\n", thrd_dst ); 263 266 /* paranoid */ verifyf( ((uintptr_t)thrd_dst->context.SP) < ((uintptr_t)__get_stack(thrd_dst->curr_cor)->base ), "ERROR : Destination $thread %p has been corrupted.\n StackPointer too small.\n", thrd_dst ); 267 /* paranoid */ verify( thrd_dst->context.SP ); 264 268 /* paranoid */ verify( kernelTLS.this_thread == thrd_dst ); 265 269 /* paranoid */ verify( ! kernelTLS.preemption_state.enabled ); … … 330 334 __x87_store; 331 335 #endif 332 verify( proc_cor->context.SP ); 336 /* paranoid */ verify( proc_cor->context.SP ); 337 /* paranoid */ verify( 0x0D15EA5E0D15EA5E == thrd_src->canary ); 333 338 __cfactx_switch( &thrd_src->context, &proc_cor->context ); 339 /* paranoid */ verify( 0x0D15EA5E0D15EA5E == thrd_src->canary ); 334 340 #if defined( __i386 ) || defined( __x86_64 ) 335 341 __x87_load; … … 363 369 /* paranoid */ #endif 364 370 /* paranoid */ verifyf( thrd->link.next == 0p, "Expected null got %p", thrd->link.next ); 371 /* paranoid */ verify( 0x0D15EA5E0D15EA5E == thrd->canary ); 372 365 373 366 374 if (thrd->preempted == __NO_PREEMPTION) thrd->state = Ready;  - 
      
libcfa/src/concurrency/kernel/startup.cfa
re235429 rb4b63e8 451 451 link.next = 0p; 452 452 link.prev = 0p; 453 #if defined( __CFA_WITH_VERIFY__ ) 454 canary = 0x0D15EA5E0D15EA5E; 455 #endif 453 456 454 457 node.next = 0p;  - 
      
libcfa/src/concurrency/thread.cfa
re235429 rb4b63e8 39 39 link.prev = 0p; 40 40 link.preferred = -1; 41 #if defined( __CFA_WITH_VERIFY__ ) 42 canary = 0x0D15EA5E0D15EA5E; 43 #endif 41 44 42 45 node.next = 0p; … … 48 51 49 52 void ^?{}($thread& this) with( this ) { 53 #if defined( __CFA_WITH_VERIFY__ ) 54 canary = 0xDEADDEADDEADDEAD; 55 #endif 50 56 unregister(curr_cluster, this); 51 57 ^self_cor{};  
  Note:
 See   TracChangeset
 for help on using the changeset viewer.