summaryrefslogtreecommitdiffstats
path: root/cpukit/score/include/rtems/score/threadq.h
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2015-04-24 12:02:20 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2015-05-19 12:00:45 +0200
commitcc366ec8c9ecaab838a745175a0d53a7a5db437e (patch)
tree330c714baf220f30a07ea57bd08c545a072a12d3 /cpukit/score/include/rtems/score/threadq.h
parentscore: More thread queue operations (diff)
downloadrtems-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.h25
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.
*/