Requirements#

Concurrency Requirements
status: draft
security: YES
safety: ASIL_B
tags: requirements, concurrency, concurrency

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
tags: result_library, concurrency
reqtype: Functional

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
tags: concurrency
reqtype: Functional

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
tags: concurrency
reqtype: Functional

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
tags: concurrency
reqtype: Functional

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
tags: concurrency
reqtype: Functional

The concurrency module shall provide implementation that manages submitted tasks in FIFO order.

Interruptible Condition Variable
status: valid
security: NO
safety: ASIL_B
tags: concurrency
reqtype: Functional

The concurrency module shall provide an abortable mechanism for threads to wait for conditions.

Interruptible Wait Utilities
status: valid
security: NO
safety: ASIL_B
tags: concurrency
reqtype: Functional

The concurrency module shall provide utilities offering APIs for sleep operations allowing early cancellation.

Notification Mechanism
status: valid
security: NO
safety: ASIL_B
tags: concurrency
reqtype: Functional

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
tags: concurrency
reqtype: Functional

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
tags: concurrency
reqtype: Functional

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
tags: concurrency
reqtype: Non-Functional

The concurrency module shall limit memory usage to prevent uncontrolled resource consumption.

Memory Reservation
status: valid
security: NO
safety: ASIL_B
tags: concurrency
reqtype: Non-Functional

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
tags: concurrency
reqtype: Non-Functional

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
tags: concurrency
reqtype: Non-Functional

The concurrency module shall avoid indefinitely blocking, unabortable operations.

Future Error Handling
status: valid
security: NO
safety: ASIL_B
tags: concurrency
reqtype: Non-Functional

The concurrency module shall use error codes instead of throwing exceptions.