source: rtems/cpukit/score/src/schedulerpriorityyield.c @ 62181b21

4.115
Last change on this file since 62181b21 was 9b4422a2, checked in by Joel Sherrill <joel.sherrill@…>, on 05/03/12 at 15:09:24

Remove All CVS Id Strings Possible Using a Script

Script does what is expected and tries to do it as
smartly as possible.

+ remove occurrences of two blank comment lines

next to each other after Id string line removed.

+ remove entire comment blocks which only exited to

contain CVS Ids

+ If the processing left a blank line at the top of

a file, it was removed.

  • Property mode set to 100644
File size: 1.4 KB
Line 
1/*
2 *  Scheduler Priority Handler / Yield
3 *
4 *  Copyright (C) 2010 Gedare Bloom.
5 *  Copyright (C) 2011 On-Line Applications Research Corporation (OAR).
6 *
7 *  The license and distribution terms for this file may be
8 *  found in the file LICENSE in this distribution or at
9 *  http://www.rtems.com/license/LICENSE.
10 */
11
12#if HAVE_CONFIG_H
13#include "config.h"
14#endif
15
16#include <rtems/system.h>
17#include <rtems/score/isr.h>
18#include <rtems/score/scheduler.h>
19#include <rtems/score/schedulerpriority.h>
20#include <rtems/score/thread.h>
21
22/*
23 *  INTERRUPT LATENCY:
24 *    ready chain
25 *    select heir
26 */
27
28void _Scheduler_priority_Yield(void)
29{
30  Scheduler_priority_Per_thread *sched_info;
31  ISR_Level                      level;
32  Thread_Control                *executing;
33  Chain_Control                 *ready;
34
35  executing  = _Thread_Executing;
36  sched_info = (Scheduler_priority_Per_thread *) executing->scheduler_info;
37  ready      = sched_info->ready_chain;
38  _ISR_Disable( level );
39    if ( !_Chain_Has_only_one_node( ready ) ) {
40      _Chain_Extract_unprotected( &executing->Object.Node );
41      _Chain_Append_unprotected( ready, &executing->Object.Node );
42
43      _ISR_Flash( level );
44
45      if ( _Thread_Is_heir( executing ) )
46        _Thread_Heir = (Thread_Control *) _Chain_First( ready );
47      _Thread_Dispatch_necessary = true;
48    }
49    else if ( !_Thread_Is_heir( executing ) )
50      _Thread_Dispatch_necessary = true;
51
52  _ISR_Enable( level );
53}
Note: See TracBrowser for help on using the repository browser.