diff options
Diffstat (limited to 'cpukit/score/src/threadqextractpriority.c')
-rw-r--r-- | cpukit/score/src/threadqextractpriority.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/cpukit/score/src/threadqextractpriority.c b/cpukit/score/src/threadqextractpriority.c index f314f75da9..5c8188d661 100644 --- a/cpukit/score/src/threadqextractpriority.c +++ b/cpukit/score/src/threadqextractpriority.c @@ -18,6 +18,7 @@ #include <rtems/system.h> #include <rtems/score/chain.h> +#include <rtems/score/coremutex.h> #include <rtems/score/isr.h> #include <rtems/score/object.h> #include <rtems/score/states.h> @@ -57,6 +58,7 @@ bool _Thread_queue_Extract_priority_helper( Chain_Node *new_first_node; Chain_Node *new_second_node; Chain_Node *last_node; + CORE_mutex_Control *mutex; the_node = (Chain_Node *) the_thread; _ISR_Disable( level ); @@ -106,6 +108,9 @@ bool _Thread_queue_Extract_priority_helper( return true; } + mutex = _Thread_Dequeue_priority_node( &the_thread->Priority_node ); + _Thread_Evaluate_priority( mutex->holder ); + if ( !_Watchdog_Is_active( &the_thread->Timer ) ) { _ISR_Enable( level ); } else { |