I'm using the Ravenscar profile to build an application that utilizes tasks.
As a simple example, I have one task that has a barrier such that it only executes when the barrier is True.
However, I've noticed that if the main control thread is executing, and then the barrier is set to true (thus released) the task blocks execution of the main thread until the barrier is closed again.
I'm working on a NRF52840 chip. I should note, whenever I target the application (with no modifications) to Native this problem doesn't happen and the tasks do not block execution.
Is there something I need to do in order to enable parallel execution for the ravenscar (full) RTS on embedded devices?
Some Additional Color: If I add a delay to the loop of the task, it indeed allows the main control thread to run.
Is this perhaps an issue with the priority ceiling protocol? The processor on board only has one core so I'm wondering if that is perhaps the problem -- that is, the task doesn't allow the main task to preempt unless it's sleeping.