diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2015-04-24 12:02:20 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2015-05-19 12:00:45 +0200 |
commit | cc366ec8c9ecaab838a745175a0d53a7a5db437e (patch) | |
tree | 330c714baf220f30a07ea57bd08c545a072a12d3 /cpukit/score/include/rtems/score/threadq.h | |
parent | score: More thread queue operations (diff) | |
download | rtems-cc366ec8c9ecaab838a745175a0d53a7a5db437e.tar.bz2 |
score: New thread queue implementation
Use thread wait flags for synchronization. The enqueue operation is now
part of the initial critical section. This is the key change and
enables fine grained locking on SMP for objects using a thread queue
like semaphores and message queues.
Update #2273.
Diffstat (limited to 'cpukit/score/include/rtems/score/threadq.h')
-rw-r--r-- | cpukit/score/include/rtems/score/threadq.h | 25 |
1 files changed, 0 insertions, 25 deletions
diff --git a/cpukit/score/include/rtems/score/threadq.h b/cpukit/score/include/rtems/score/threadq.h index 59781ac73c..b89198608a 100644 --- a/cpukit/score/include/rtems/score/threadq.h +++ b/cpukit/score/include/rtems/score/threadq.h @@ -25,7 +25,6 @@ #include <rtems/score/priority.h> #include <rtems/score/rbtree.h> #include <rtems/score/states.h> -#include <rtems/score/threadsync.h> #ifdef __cplusplus extern "C" { @@ -84,21 +83,6 @@ typedef void ( *Thread_queue_Enqueue_operation )( ); /** - * @brief Thread queue dequeue operation. - * - * @param[in] the_thread_queue The thread queue. - * - * @retval NULL No thread is present on the thread queue. - * @retval first The first thread of the thread queue according to the insert - * order. This thread is no longer on the thread queue. - * - * @see _Thread_Wait_set_operations(). - */ -typedef Thread_Control *( *Thread_queue_Dequeue_operation )( - Thread_queue_Control *the_thread_queue -); - -/** * @brief Thread queue extract operation. * * @param[in] the_thread_queue The thread queue. @@ -159,13 +143,6 @@ typedef struct { Thread_queue_Enqueue_operation enqueue; /** - * @brief Thread queue dequeue operation. - * - * Called by object routines to dequeue the first waiting thread if present. - */ - Thread_queue_Dequeue_operation dequeue; - - /** * @brief Thread queue extract operation. * * Called by object routines to extract a thread from a thread queue. @@ -218,8 +195,6 @@ struct Thread_queue_Control { */ ISR_LOCK_MEMBER( Lock ) - /** This field is used to manage the critical section. */ - Thread_blocking_operation_States sync_state; /** This is the status value returned to threads which timeout while * waiting on this thread queue. */ |