Functionality for Foundation Barrier Services.
More...
|
#define | CORE_BARRIER_TQ_OPERATIONS &_Thread_queue_Operations_FIFO |
|
|
void | _CORE_barrier_Initialize (CORE_barrier_Control *the_barrier, CORE_barrier_Attributes *the_barrier_attributes) |
| Initializes the core barrier. More...
|
|
static __inline__ void | _CORE_barrier_Destroy (CORE_barrier_Control *the_barrier) |
| Destroys the core barrier. More...
|
|
static __inline__ void | _CORE_barrier_Acquire_critical (CORE_barrier_Control *the_barrier, Thread_queue_Context *queue_context) |
| Acquires critical core barrier. More...
|
|
static __inline__ void | _CORE_barrier_Release (CORE_barrier_Control *the_barrier, Thread_queue_Context *queue_context) |
| Releases core barrier. More...
|
|
Status_Control | _CORE_barrier_Seize (CORE_barrier_Control *the_barrier, Thread_Control *executing, bool wait, Thread_queue_Context *queue_context) |
| Waits for the barrier. More...
|
|
uint32_t | _CORE_barrier_Do_flush (CORE_barrier_Control *the_barrier, Thread_queue_Flush_filter filter, Thread_queue_Context *queue_context) |
| Flushes the barrier. More...
|
|
static __inline__ uint32_t | _CORE_barrier_Surrender (CORE_barrier_Control *the_barrier, Thread_queue_Context *queue_context) |
| Manually releases the barrier. More...
|
|
static __inline__ void | _CORE_barrier_Flush (CORE_barrier_Control *the_barrier, Thread_queue_Context *queue_context) |
| Flushes the barrier using _CORE_barrier_Do_flush(). More...
|
|
static __inline__ bool | _CORE_barrier_Is_automatic (CORE_barrier_Attributes *the_attribute) |
| Checks if the barrier is automatic. More...
|
|
static __inline__ uint32_t | _CORE_barrier_Get_number_of_waiting_threads (CORE_barrier_Control *the_barrier) |
| Returns the number of currently waiting threads. More...
|
|
Functionality for Foundation Barrier Services.
This handler encapsulates functionality which provides the foundation Barrier services used in all of the APIs supported by RTEMS.
◆ CORE_barrier_Disciplines
Flavors of barriers.
Enumerator |
---|
CORE_BARRIER_AUTOMATIC_RELEASE | This specifies that the barrier will automatically release when the user specified number of threads have arrived at the barrier.
|
CORE_BARRIER_MANUAL_RELEASE | This specifies that the user will have to manually release the barrier in order to release the waiting threads.
|
Definition at line 46 of file corebarrier.h.
◆ _CORE_barrier_Acquire_critical()
Acquires critical core barrier.
- Parameters
-
[in,out] | the_barrier | The barrier to acquire. |
| queue_context | The thread queue context. |
Definition at line 73 of file corebarrierimpl.h.
◆ _CORE_barrier_Destroy()
Destroys the core barrier.
This routine destroys the barrier.
- Parameters
-
[out] | the_barrier | The barrier to destroy. |
Definition at line 60 of file corebarrierimpl.h.
◆ _CORE_barrier_Do_flush()
Flushes the barrier.
- Parameters
-
[in,out] | the_barrier | The barrier to flush. |
[out] | filter | The filter for flushing. |
[out] | queue_context | The thread queue context. |
Definition at line 24 of file corebarrierrelease.c.
◆ _CORE_barrier_Flush()
◆ _CORE_barrier_Get_number_of_waiting_threads()
static __inline__ uint32_t _CORE_barrier_Get_number_of_waiting_threads |
( |
CORE_barrier_Control * |
the_barrier | ) |
|
|
static |
Returns the number of currently waiting threads.
This routine returns the number of threads currently waiting at the barrier.
- Parameters
-
[in] | the_barrier | The barrier to obtain the number of blocked threads of. |
- Returns
- the current count of waiting threads of this barrier.
Definition at line 200 of file corebarrierimpl.h.
◆ _CORE_barrier_Initialize()
Initializes the core barrier.
This routine initializes the barrier based on the parameters passed.
- Parameters
-
[out] | the_barrier | The barrier to initialize. |
[out] | the_barrier_attributes | The attributes which define the behavior of this instance. |
Definition at line 23 of file corebarrier.c.
◆ _CORE_barrier_Is_automatic()
Checks if the barrier is automatic.
This function returns true if the automatic release attribute is enabled in the attribute_set and false otherwise.
- Parameters
-
the_attribute | The attribute set to test. |
- Return values
-
true | The automatic release attribute is enabled. |
false | The automatic release attribute is not enabled. |
Definition at line 182 of file corebarrierimpl.h.
◆ _CORE_barrier_Release()
Releases core barrier.
- Parameters
-
[in,out] | the_barrier | The barrier to release. |
| queue_context | The thread queue context. |
Definition at line 87 of file corebarrierimpl.h.
◆ _CORE_barrier_Seize()
Waits for the barrier.
This routine waits for the barrier to be released. If the barrier is set to automatic and this is the appropriate thread, then it returns immediately. Otherwise, the calling thread is blocked until the barrier is released.
- Parameters
-
[in,out] | the_barrier | The barrier to wait for. |
[in,out] | executing | The currently executing thread. |
| wait | This parameter is true if the calling thread is willing to wait. |
| queue_context | The thread queue context. |
- Returns
- The method status.
Definition at line 25 of file corebarrierwait.c.
◆ _CORE_barrier_Surrender()
Manually releases the barrier.
This routine manually releases the barrier. All of the threads waiting for the barrier will be readied.
- Parameters
-
[in,out] | the_barrier | The barrier to surrender. |
[out] | queue_context | The thread queue context. |
- Returns
- The number of unblocked threads.
Definition at line 141 of file corebarrierimpl.h.