- At first TASK3 will wake up since it has the highest priority. If bit is cleared inside TASK3 will TASK1 and TASK2 still be executed?
- What if instead of clearing bit inside TASK3 it is done in one of lower priority tasks i.e. TASK1 and TASK_2. Does it ensure that all the tasks will wake up?
I am not sure how to clear event bits if several tasks are waiting for the same bits. Let us concider three tasks waiting for the same bit. Let their names be TASK1, TASK2 and TASK3. Suppose that TASK1 and TASK2 have priority of 1 and TASK3 has priority of 2. Imagine that bit of interest is set by task 4. Here comes my questions:
If you have multiple tasks waiting on the same bit then ALL the tasks will wake if the bit is set, not just the highest priority task. The priority only makes a different to which task runs first. Therefore the bits can be cleared inside the API function itself (the parameters to the functions way which bits to clear and when). Anything else would result in unworkable race conditions (which some OSes just push back to the application writer to try and sort out).
Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.