Requirements#
Concurrency Requirements
|
status: draft
security: YES
safety: ASIL_B
|
||||
Functional Requirements#
Asynchronous Task Execution
|
status: valid
security: NO
safety: ASIL_B
|
||||
The concurrency module shall allow running tasks asynchronously. |
|||||
Task Cancellation
|
status: valid
security: NO
safety: ASIL_B
|
||||
The concurrency module shall allow cancelling tasks when needed. |
|||||
Simple Task Implementation
|
status: valid
security: NO
safety: ASIL_B
|
||||
The concurrency module shall provide implementation for executing callable objects without returning results, supporting fire-and-forget asynchronous operations. |
|||||
Task Result Management
|
status: valid
security: NO
safety: ASIL_B
|
||||
The concurrency module shall provide implementation to access the result of an asynchronously running task or to request aborting the task when the result is no longer needed. |
|||||
Periodic Task Execution
|
status: valid
security: NO
safety: ASIL_B
|
||||
The concurrency module shall provide implementation for executing callable objects at regular intervals with configurable first execution time and period duration. |
|||||
Delayed Task Execution
|
status: valid
security: NO
safety: ASIL_B
|
||||
The concurrency module shall provide implementation for executing callable objects after a specified delay with support for early cancellation. |
|||||
Executor Interface
|
status: valid
security: NO
safety: ASIL_B
|
||||
The concurrency module shall provide interface defining a common API for task submission operations, graceful shutdown, and maximum concurrency level reporting. |
|||||
Thread Pool Implementation
|
status: valid
security: NO
safety: ASIL_B
|
||||
The concurrency module shall provide implementation that manages submitted tasks in FIFO order. |
|||||
Interruptible Condition Variable
|
status: valid
security: NO
safety: ASIL_B
|
||||
The concurrency module shall provide an abortable mechanism for threads to wait for conditions. |
|||||
Interruptible Wait Utilities
|
status: valid
security: NO
safety: ASIL_B
|
||||
The concurrency module shall provide utilities offering APIs for sleep operations allowing early cancellation. |
|||||
Notification Mechanism
|
status: valid
security: NO
safety: ASIL_B
|
||||
The concurrency module shall allow one thread to notify another thread once, with a timeout option. |
|||||
Synchronized Queue
|
status: valid
security: NO
safety: ASIL_B
|
||||
The concurrency module shall provide a thread-safe container facilitating FIFO transmission of data in a N:1 communication pattern. |
|||||
Long-Running Threads Container
|
status: valid
security: NO
safety: ASIL_B
|
||||
The concurrency module shall provide a container for managing long-running threads, allowing addition and removal of threads. |
|||||
Non-Functional Requirements#
Memory Usage Control
|
status: valid
security: NO
safety: ASIL_B
|
||||
The concurrency module shall limit memory usage to prevent uncontrolled resource consumption. |
|||||
Memory Reservation
|
status: valid
security: NO
safety: ASIL_B
|
||||
The concurrency module shall allow reserving memory upfront for tasks to ensure predictable resource allocation. |
|||||
Thread Count Reporting
|
status: valid
security: NO
safety: ASIL_B
|
||||
The concurrency module shall report the maximum number of concurrent threads available for task execution. |
|||||
Operation Timeout Protection
|
status: valid
security: NO
safety: ASIL_B
|
||||
The concurrency module shall avoid indefinitely blocking, unabortable operations. |
|||||
Future Error Handling
|
status: valid
security: NO
safety: ASIL_B
|
||||
The concurrency module shall use error codes instead of throwing exceptions. |
|||||
Assumptions of Use (AoU)#
Cooperative Cancellation Handling
|
status: valid
security: NO
safety: ASIL_B
|
||||
Users shall implement cancellation logic in long-running tasks to respond to stop_token signals. |
|||||
Memory Management on Task Submission Failure
|
status: valid
security: NO
safety: ASIL_B
|
||||
Users shall handle task submission failures when the bounded memory resource is exhausted and implement appropriate backpressure mechanisms. |
|||||
Thread Pool Sizing
|
status: valid
security: NO
safety: ASIL_B
|
||||
Users shall size ThreadPool according to task characteristics and avoid submitting blocking tasks that will starve the thread pool. |
|||||
Thread Safety
|
status: valid
security: NO
safety: ASIL_B
|
||||
Users shall implement appropriate synchronization mechanisms when sharing state between tasks, as the library only guarantees thread-safe task submission and execution scheduling. |
|||||