summaryrefslogtreecommitdiffstats
path: root/cpukit/score/src/threadqenqueue.c
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2016-05-27 13:26:53 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2016-05-30 16:16:21 +0200
commit0e1d11f3f0f02768ced350fcb53056c55f0c545b (patch)
tree1f7062ab130bf78d924a7e34eec62864f3d8ae6e /cpukit/score/src/threadqenqueue.c
parentscore: Adjust thread queue layout (diff)
downloadrtems-0e1d11f3f0f02768ced350fcb53056c55f0c545b.tar.bz2
score: Add _Thread_queue_Context_set_MP_callout()
Add _Thread_queue_Context_set_MP_callout() to simplify _Thread_queue_Context_initialize(). This makes it possible to more easily add additional fields to Thread_queue_Context.
Diffstat (limited to 'cpukit/score/src/threadqenqueue.c')
-rw-r--r--cpukit/score/src/threadqenqueue.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/cpukit/score/src/threadqenqueue.c b/cpukit/score/src/threadqenqueue.c
index 948275b74c..4eaafa9036 100644
--- a/cpukit/score/src/threadqenqueue.c
+++ b/cpukit/score/src/threadqenqueue.c
@@ -195,10 +195,7 @@ void _Thread_queue_Extract( Thread_Control *the_thread )
void *lock;
Thread_queue_Queue *queue;
- _Thread_queue_Context_initialize(
- &queue_context,
- _Thread_queue_MP_callout_do_nothing
- );
+ _Thread_queue_Context_initialize( &queue_context );
lock = _Thread_Lock_acquire( the_thread, &queue_context.Lock_context );
queue = the_thread->Wait.queue;
@@ -206,6 +203,10 @@ void _Thread_queue_Extract( Thread_Control *the_thread )
if ( queue != NULL ) {
_SMP_Assert( lock == &queue->Lock );
+ _Thread_queue_Context_set_MP_callout(
+ &queue_context,
+ _Thread_queue_MP_callout_do_nothing
+ );
_Thread_queue_Extract_critical(
queue,
the_thread->Wait.operations,
@@ -229,7 +230,8 @@ Thread_Control *_Thread_queue_Do_dequeue(
Thread_queue_Context queue_context;
Thread_Control *the_thread;
- _Thread_queue_Context_initialize( &queue_context, mp_callout );
+ _Thread_queue_Context_initialize( &queue_context );
+ _Thread_queue_Context_set_MP_callout( &queue_context, mp_callout );
_Thread_queue_Acquire( the_thread_queue, &queue_context.Lock_context );
the_thread = _Thread_queue_First_locked( the_thread_queue, operations );