summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2015-04-09 13:54:17 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2015-04-09 13:54:17 +0200
commit41814fa648e2c8ab3fb2359e4617657e74590b38 (patch)
treec13c8fcbf6e559a9fd980187fa7bf031566321d7
parentscore: Use _Thread_Clear_state() for _Thread_Ready (diff)
downloadrtems-41814fa648e2c8ab3fb2359e4617657e74590b38.tar.bz2
score: Fix thread queue race condition
On uni-processor configurations the change of the thread blocking state in _Thread_queue_Requeue_priority() did no harm and was simply useless. However on SMP configurations this resulted in invalid state changes leading to a wrong resource ownership.
-rw-r--r--cpukit/score/src/threadqenqueue.c1
1 files changed, 0 insertions, 1 deletions
diff --git a/cpukit/score/src/threadqenqueue.c b/cpukit/score/src/threadqenqueue.c
index 21bdcdb6dc..c059556408 100644
--- a/cpukit/score/src/threadqenqueue.c
+++ b/cpukit/score/src/threadqenqueue.c
@@ -92,7 +92,6 @@ static void _Thread_queue_Requeue_priority(
{
Thread_queue_Control *tq = context;
- _Thread_queue_Enter_critical_section( tq );
_RBTree_Extract( &tq->Queues.Priority, &the_thread->RBNode );
_RBTree_Insert(
&tq->Queues.Priority,