5 years, 3 months ago.

Forcing RTOS scheduler to run after an ISR

I am very new to mbed os and its underlying RTOS but I cannot find an answer to this. We have several threads in an application and one is blocked waiting on data from an outside source. An interrupt is triggered when the data arrives and the interrupt can signal the waiting thread by signaling via a semaphore. However, when the ISR returns, the newly released thread, which has a higher priority than the current thread, will not run until the sys tick calls the scheduler. Is there a way in the ISR to force the scheduler to run immediately after the ISR returns? Other RTOS'es have a return from ISR type call that can optionally be called to also switch to a new higher priority thread if it is now available to run.

Be the first to answer this question.