diff options
author | Joel Sherrill <joel.sherrill@oarcorp.com> | 2014-07-15 12:37:36 -0500 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@oarcorp.com> | 2014-07-15 13:42:30 -0500 |
commit | 32506647001a815e3c0daf25757d386104a07184 (patch) | |
tree | 8ab18c675b7617011d405e915e00d455d18ea334 /cpukit/score/src/threadqextractfifo.c | |
parent | Thread Queue Priority Discipline Reimplemented with RBTree (diff) | |
download | rtems-32506647001a815e3c0daf25757d386104a07184.tar.bz2 |
Thread Queue: Merge discipline subroutines into main methods
There was a lot of duplication between the discipline subroutines.
With the transition to RBTrees for priority discipline, there were
only a few lines of source code manipulating the data structure
for FIFO and priority. Thus is made sense to fold these back
into the main methods.
As part of doing this all of the tests for discipline were changed
to be in the same order.
Diffstat (limited to 'cpukit/score/src/threadqextractfifo.c')
-rw-r--r-- | cpukit/score/src/threadqextractfifo.c | 61 |
1 files changed, 0 insertions, 61 deletions
diff --git a/cpukit/score/src/threadqextractfifo.c b/cpukit/score/src/threadqextractfifo.c deleted file mode 100644 index 80fc7f3964..0000000000 --- a/cpukit/score/src/threadqextractfifo.c +++ /dev/null @@ -1,61 +0,0 @@ -/** - * @file - * - * @brief Removes a Thread from a Thread Queue - * - * @ingroup ScoreThreadQ - */ - -/* - * COPYRIGHT (c) 1989-2008. - * On-Line Applications Research Corporation (OAR). - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rtems.org/license/LICENSE. - */ - -#if HAVE_CONFIG_H -#include "config.h" -#endif - -#include <rtems/score/threadqimpl.h> -#include <rtems/score/chainimpl.h> -#include <rtems/score/isrlevel.h> -#include <rtems/score/threadimpl.h> -#include <rtems/score/watchdogimpl.h> - -void _Thread_queue_Extract_fifo( - Thread_Control *the_thread, - uint32_t return_code -) -{ - ISR_Level level; - - _ISR_Disable( level ); - - if ( !_States_Is_waiting_on_thread_queue( the_thread->current_state ) ) { - _ISR_Enable( level ); - return; - } - - _Chain_Extract_unprotected( &the_thread->Object.Node ); - - the_thread->Wait.queue = NULL; - the_thread->Wait.return_code = return_code; - - if ( !_Watchdog_Is_active( &the_thread->Timer ) ) { - _ISR_Enable( level ); - } else { - _Watchdog_Deactivate( &the_thread->Timer ); - _ISR_Enable( level ); - (void) _Watchdog_Remove( &the_thread->Timer ); - } - - _Thread_Unblock( the_thread ); - -#if defined(RTEMS_MULTIPROCESSING) - if ( !_Objects_Is_local_id( the_thread->Object.id ) ) - _Thread_MP_Free_proxy( the_thread ); -#endif -} |