Changeset b388ee81 for libcfa/src/concurrency/kernel.cfa
- Timestamp:
- Jun 11, 2020, 6:47:27 PM (4 years ago)
- Branches:
- ADT, arm-eh, ast-experimental, enum, forall-pointer-decay, jacob/cs343-translation, master, new-ast, new-ast-unique-expr, pthread-emulation, qualifiedEnum
- Children:
- 9b1dcc2
- Parents:
- 61d7bec
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
libcfa/src/concurrency/kernel.cfa
r61d7bec rb388ee81 125 125 //----------------------------------------------------------------------------- 126 126 // Kernel storage 127 KERNEL_STORAGE(cluster, mainCluster); 128 KERNEL_STORAGE(processor, mainProcessor); 129 KERNEL_STORAGE($thread, mainThread); 130 KERNEL_STORAGE(__stack_t, mainThreadCtx); 131 132 cluster * mainCluster; 133 processor * mainProcessor; 134 $thread * mainThread; 127 KERNEL_STORAGE(cluster, mainCluster); 128 KERNEL_STORAGE(processor, mainProcessor); 129 KERNEL_STORAGE($thread, mainThread); 130 KERNEL_STORAGE(__stack_t, mainThreadCtx); 131 KERNEL_STORAGE(__scheduler_RWLock_t, __scheduler_lock); 132 133 cluster * mainCluster; 134 processor * mainProcessor; 135 $thread * mainThread; 136 __scheduler_RWLock_t * __scheduler_lock; 135 137 136 138 extern "C" { … … 262 264 this.preemption_rate = preemption_rate; 263 265 ready_queue{}; 264 ready_lock{};265 266 266 267 #if !defined(__CFA_NO_STATISTICS__) … … 299 300 // register the processor unless it's the main thread which is handled in the boot sequence 300 301 if(this != mainProcessor) { 301 this->id = doregister 2(this->cltr,this);302 this->id = doregister(this); 302 303 ready_queue_grow( this->cltr ); 303 304 } … … 345 346 if(this != mainProcessor) { 346 347 ready_queue_shrink( this->cltr ); 347 unregister 2(this->cltr,this);348 unregister(this); 348 349 } 349 350 else { … … 622 623 if (thrd->preempted == __NO_PREEMPTION) thrd->state = Ready; 623 624 624 ready_schedule_lock( thrd->curr_cluster, kernelTLS.this_processor);625 ready_schedule_lock( kernelTLS.this_processor ); 625 626 push( thrd->curr_cluster, thrd ); 626 627 627 628 __wake_one(thrd->curr_cluster); 628 ready_schedule_unlock( thrd->curr_cluster, kernelTLS.this_processor);629 ready_schedule_unlock( kernelTLS.this_processor ); 629 630 630 631 /* paranoid */ verify( ! kernelTLS.preemption_state.enabled ); … … 635 636 /* paranoid */ verify( ! kernelTLS.preemption_state.enabled ); 636 637 637 ready_schedule_lock( this, kernelTLS.this_processor);638 ready_schedule_lock( kernelTLS.this_processor ); 638 639 $thread * head = pop( this ); 639 ready_schedule_unlock( this, kernelTLS.this_processor);640 ready_schedule_unlock( kernelTLS.this_processor ); 640 641 641 642 /* paranoid */ verify( ! kernelTLS.preemption_state.enabled ); … … 749 750 __cfa_dbg_global_clusters.lock{}; 750 751 752 // Initialize the global scheduler lock 753 __scheduler_lock = (__scheduler_RWLock_t*)&storage___scheduler_lock; 754 (*__scheduler_lock){}; 755 751 756 // Initialize the main cluster 752 757 mainCluster = (cluster *)&storage_mainCluster; … … 793 798 (*mainProcessor){}; 794 799 795 mainProcessor->id = doregister 2(mainCluster,mainProcessor);800 mainProcessor->id = doregister(mainProcessor); 796 801 797 802 //initialize the global state variables … … 848 853 kernel_stop_preemption(); 849 854 850 unregister 2(mainCluster,mainProcessor);855 unregister(mainProcessor); 851 856 852 857 // Destroy the main processor and its context in reverse order of construction … … 866 871 867 872 ^(*mainCluster){}; 873 874 ^(*__scheduler_lock){}; 868 875 869 876 ^(__cfa_dbg_global_clusters.list){};
Note: See TracChangeset
for help on using the changeset viewer.