Changeset 40ee2fc0 in rtems for cpukit/score/src/scheduleredfyield.c
- Timestamp:
- 09/20/11 13:06:42 (12 years ago)
- Branches:
- 4.11, 5, master
- Children:
- 74416035
- Parents:
- 3fb73e22
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
cpukit/score/src/scheduleredfyield.c
r3fb73e22 r40ee2fc0 22 22 void _Scheduler_EDF_Yield(void) 23 23 { 24 Scheduler_EDF_Per_thread *first_info;25 RBTree_Node *first_node;26 24 ISR_Level level; 27 25 … … 33 31 _ISR_Disable( level ); 34 32 35 if ( !_RBTree_Has_only_one_node(&_Scheduler_EDF_Ready_queue) ) { 36 /* 37 * The RBTree has more than one node, enqueue behind the tasks 38 * with the same priority in case there are such ones. 39 */ 40 _RBTree_Extract( &_Scheduler_EDF_Ready_queue, executing_node ); 41 _RBTree_Insert( &_Scheduler_EDF_Ready_queue, executing_node ); 33 /* 34 * The RBTree has more than one node, enqueue behind the tasks 35 * with the same priority in case there are such ones. 36 */ 37 _RBTree_Extract( &_Scheduler_EDF_Ready_queue, executing_node ); 38 _RBTree_Insert( &_Scheduler_EDF_Ready_queue, executing_node ); 42 39 43 40 _ISR_Flash( level ); 44 41 45 if ( _Thread_Is_heir( executing ) ) { 46 first_node = _RBTree_Peek( &_Scheduler_EDF_Ready_queue, RBT_LEFT ); 47 first_info = 48 _RBTree_Container_of(first_node, Scheduler_EDF_Per_thread, Node); 49 _Thread_Heir = first_info->thread; 50 } 51 _Thread_Dispatch_necessary = true; 52 } 53 else if ( !_Thread_Is_heir( executing ) ) 54 _Thread_Dispatch_necessary = true; 42 _Scheduler_EDF_Schedule(); 43 _Thread_Dispatch_necessary = true; 55 44 56 45 _ISR_Enable( level );
Note: See TracChangeset
for help on using the changeset viewer.