Книга: Real-Time Concepts for Embedded Systems
8.5.2 Typical Condition Variable Operations
8.5.2 Typical Condition Variable Operations
A set of operations is allowed for a condition variable, as shown in Table 8.7.
Table 8.7: Condition variable operations.
Operation | Description |
---|---|
Create | Creates and initializes a condition variable |
Wait | Waits on a condition variable |
Signal | Signals the condition variable on the presence of a condition |
Broadcast | Signals to all waiting tasks the presence of a condition |
The create operation creates a condition variable and initializes its internal control block.
The wait operation allows a task to block and wait for the desired conditions to occur in the shared resource. To invoke this operation, the task must first successfully acquire the guarding mutex. The wait operation puts the calling task into the task-waiting queue and releases the associated mutex in a single atomic operation.
The signal operation allows a task to modify the condition variable to indicate that a particular condition has been created in the shared resource. To invoke this operation, the signaling task must first successfully acquire the guarding mutex. The signal operation unblocks one of the tasks waiting on the condition variable. The selection of the task is based on predefined criteria, such as execution priority or system-defined scheduling attributes. At the completion of the signal operation, the kernel reacquires the mutex associated with the condition variable on behalf of the selected task and unblocks the task in one atomic operation.
The broadcast operation wakes up every task on the task-waiting list of the condition variable. One of these tasks is chosen by the kernel and is given the guarding mutex. Every other task is removed from the task-waiting list of the condition variable, and instead, those tasks are put on the task-waiting list of the guarding mutex.
- 8.5.1 Condition Variable Control Blocks
- 8.5.3 Typical Uses of Condition Variables
- Generalized identity operations
- Heap operations
- Arithmetic operations
- Logical operations
- Using Double Quotes to Resolve Variables in Strings with Embedded Spaces
- 1. TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
- 11.7 Soft Timers and Timer Related Operations
- Access Variable Data Files in the
- Using Environment Variables
- Perl Variables and Data Structures