Synchronization primitives provide the most basic and essential form of communication between tasks. They protect resources, synchronize work and trigger actions.
|F002-1||Mutex||As a developer, I want that a single resource can only access from one task at a time, so that I can share resources between tasks without data hazards.||high||done|
|F002-2||Priority Inversion||As a developer, I want no unbounded priority inversion to occur when a tasks tries to access a shared resource, so that a task doesn't starve.||medium||planned|
|F002-3||Counting Semaphore||As a developer, I want to create an object that can be taken/given a multiple times, so that I can synchronize multiple tasks.||high||done|
|F002-4||Event Flags||As a developer, I want to trigger an action on a combination of events, so that I can react to system events efficiently.||low||planned|