summaryrefslogtreecommitdiffstats
path: root/cpukit/score/src/threadqenqueue.c
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2016-08-11 10:26:57 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2016-08-11 11:13:42 +0200
commit424ffe4db039878eae13428d1ddeeb4a7c7f47fe (patch)
tree8f6e984f0f0c386e3c7aa58b9fb817aba6e56ea2 /cpukit/score/src/threadqenqueue.c
parentscore: Dismantle _Thread_queue_Do_extract_locked() (diff)
downloadrtems-424ffe4db039878eae13428d1ddeeb4a7c7f47fe.tar.bz2
score: Introduce thread queue surrender operation
This is an optimization for _Thread_queue_Surrender(). It helps to encapsulate the priority boosting in the priority inheritance thread queue operations.
Diffstat (limited to 'cpukit/score/src/threadqenqueue.c')
-rw-r--r--cpukit/score/src/threadqenqueue.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/cpukit/score/src/threadqenqueue.c b/cpukit/score/src/threadqenqueue.c
index 2f6b041789..5a7fd6def5 100644
--- a/cpukit/score/src/threadqenqueue.c
+++ b/cpukit/score/src/threadqenqueue.c
@@ -596,7 +596,7 @@ void _Thread_queue_Surrender(
Thread_Control *new_owner;
bool unblock;
- new_owner = ( *operations->first )( heads );
+ new_owner = ( *operations->surrender )( queue, heads, previous_owner );
queue->owner = new_owner;
#if defined(RTEMS_MULTIPROCESSING)
@@ -604,10 +604,8 @@ void _Thread_queue_Surrender(
#endif
{
++new_owner->resource_count;
- _Thread_queue_Boost_priority( queue, new_owner );
}
- ( *operations->extract )( queue, new_owner );
unblock = _Thread_queue_Make_ready_again( new_owner );
_Thread_queue_Unblock_critical(