Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
schedule: cancel a task before freeing it
When a chain DMA stream is the only one running, stopping it currently takes 100ms. The reason is that the chain DMA driver is trying to stop the task directly from the IPC context instead of letting the task exit on its next scheduling event. The IPC thread is indeed trying to wait on a semaphore for the task to exit, but that doesn't work either, because zephyr_domain_unregister() terminates the thread before it signals the semaphore. To fix this we swap the order and signal the semaphore before terminating the thread. Link: #8445 Signed-off-by: Guennadi Liakhovetski <[email protected]>
- Loading branch information