Resume different thread after interrupt

Hi, I am attempting to start an SPI call triggered by a GPIO line being pulled high. This is in parallel with other less time-critical tasks. As SPI transfers cannot be started in ISR context, I currently send an event to a very high priority event queue. However, the issue is that after the ISR, MBED returns to the currently active task until it yields or is preempted by the system timer. This means that there is a variable amount of time until the ISR is called, often far too long to respond in time to the event.

Is there any way to either trigger an immediate context switch after an ISR or inform the RTOS that there is a higher priority task that it should immediately switch to?