diff options
Diffstat (limited to '')
-rw-r--r-- | cpukit/include/rtems/score/threadqimpl.h | 28 | ||||
-rw-r--r-- | cpukit/score/src/threadqfirst.c | 10 |
2 files changed, 9 insertions, 29 deletions
diff --git a/cpukit/include/rtems/score/threadqimpl.h b/cpukit/include/rtems/score/threadqimpl.h index 0a24d2da3b..19d9704dec 100644 --- a/cpukit/include/rtems/score/threadqimpl.h +++ b/cpukit/include/rtems/score/threadqimpl.h @@ -1139,34 +1139,6 @@ RTEMS_INLINE_ROUTINE bool _Thread_queue_Is_empty( * @brief Returns the first thread on the thread queue if it exists, otherwise * @c NULL. * - * The caller must be the owner of the thread queue lock. The thread queue - * lock is not released. - * - * @param the_thread_queue The thread queue. - * @param operations The thread queue operations. - * -* @retval first The first thread on the thread queue according to the enqueue - * order. - * @retval NULL No thread is present on the thread queue. - */ -RTEMS_INLINE_ROUTINE Thread_Control *_Thread_queue_First_locked( - Thread_queue_Control *the_thread_queue, - const Thread_queue_Operations *operations -) -{ - Thread_queue_Heads *heads = the_thread_queue->Queue.heads; - - if ( heads != NULL ) { - return ( *operations->first )( heads ); - } else { - return NULL; - } -} - -/** - * @brief Returns the first thread on the thread queue if it exists, otherwise - * @c NULL. - * * @param the_thread_queue The thread queue. * * @retval first The first thread on the thread queue according to the enqueue diff --git a/cpukit/score/src/threadqfirst.c b/cpukit/score/src/threadqfirst.c index 9908523298..8edbc1645f 100644 --- a/cpukit/score/src/threadqfirst.c +++ b/cpukit/score/src/threadqfirst.c @@ -27,11 +27,19 @@ Thread_Control *_Thread_queue_First( const Thread_queue_Operations *operations ) { + Thread_queue_Heads *heads; Thread_Control *the_thread; Thread_queue_Context queue_context; _Thread_queue_Acquire( the_thread_queue, &queue_context ); - the_thread = _Thread_queue_First_locked( the_thread_queue, operations ); + heads = the_thread_queue->Queue.heads; + + if ( heads != NULL ) { + the_thread = ( *operations->first )( heads ); + } else { + the_thread = NULL; + } + _Thread_queue_Release( the_thread_queue, &queue_context ); return the_thread; |