score: Remove _Thread_queue_First_locked()

The _Thread_queue_First_locked() was only used in one place.  Move the code of
this inline function to this place.
This commit is contained in:
Sebastian Huber
2021-08-31 12:42:29 +02:00
parent d9249c9bff
commit 317774c99a
2 changed files with 9 additions and 29 deletions

View File

@@ -1135,34 +1135,6 @@ RTEMS_INLINE_ROUTINE bool _Thread_queue_Is_empty(
return queue->heads == NULL;
}
/**
* @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.

View File

@@ -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;