4.115
Last change
on this file since eea7c937 was
f068384e,
checked in by Sebastian Huber <sebastian.huber@…>, on 07/24/13 at 10:03:31
|
score: Create schedulerpriority impl header
Move implementation specific parts of schedulerpriority.h and
schedulerpriority.inl into new header file schedulerpriorityimpl.h. The
schedulerpriority.h contains now only the application visible API.
Add missing includes. Remove superfluous includes.
Move declaration of _Priority_Bit_map to prioritybitmap.inl since this
variable is used only here.
Remove second declaration of _Priority_Major_bit_map.
|
-
Property mode set to
100644
|
File size:
1.3 KB
|
Line | |
---|
1 | /** |
---|
2 | * @file |
---|
3 | * |
---|
4 | * @brief Scheduler Priority Unblock |
---|
5 | * @ingroup ScoreScheduler |
---|
6 | */ |
---|
7 | |
---|
8 | /* |
---|
9 | * Scheduler Handler |
---|
10 | * |
---|
11 | * Copyright (C) 2010 Gedare Bloom. |
---|
12 | * Copyright (C) 2011 On-Line Applications Research Corporation (OAR). |
---|
13 | * |
---|
14 | * The license and distribution terms for this file may be |
---|
15 | * found in the file LICENSE in this distribution or at |
---|
16 | * http://www.rtems.com/license/LICENSE. |
---|
17 | */ |
---|
18 | |
---|
19 | #if HAVE_CONFIG_H |
---|
20 | #include "config.h" |
---|
21 | #endif |
---|
22 | |
---|
23 | #include <rtems/score/schedulerpriorityimpl.h> |
---|
24 | |
---|
25 | void _Scheduler_priority_Unblock ( |
---|
26 | Thread_Control *the_thread |
---|
27 | ) |
---|
28 | { |
---|
29 | _Scheduler_priority_Ready_queue_enqueue(the_thread); |
---|
30 | |
---|
31 | /* TODO: flash critical section? */ |
---|
32 | |
---|
33 | /* |
---|
34 | * If the thread that was unblocked is more important than the heir, |
---|
35 | * then we have a new heir. This may or may not result in a |
---|
36 | * context switch. |
---|
37 | * |
---|
38 | * Normal case: |
---|
39 | * If the current thread is preemptible, then we need to do |
---|
40 | * a context switch. |
---|
41 | * Pseudo-ISR case: |
---|
42 | * Even if the thread isn't preemptible, if the new heir is |
---|
43 | * a pseudo-ISR system task, we need to do a context switch. |
---|
44 | */ |
---|
45 | if ( the_thread->current_priority < _Thread_Heir->current_priority ) { |
---|
46 | _Thread_Heir = the_thread; |
---|
47 | if ( _Thread_Executing->is_preemptible || |
---|
48 | the_thread->current_priority == 0 ) |
---|
49 | _Thread_Dispatch_necessary = true; |
---|
50 | } |
---|
51 | } |
---|
Note: See
TracBrowser
for help on using the repository browser.