Собственно вопрос, насколько безопасно использовать вызов функции osThreadResume из обработчика прерывания, которая описана в файле cmsis_os.с. Данный файл генерируется Кубом при создании проэкта с РТОС. Проц серии stm32f4xx.
Сама функция:
Код
osStatus osThreadResume (osThreadId thread_id)
{
#if (INCLUDE_vTaskSuspend == 1)  
  if(inHandlerMode())
  {
    if (xTaskResumeFromISR(thread_id) == pdTRUE)
    {
      portYIELD_FROM_ISR(pdTRUE);
    }
  }
  else
  {
    vTaskResume(thread_id);
  }
  return osOK;
#else
  return osErrorResource;
#endif
}

Как я заметил, функция выполняет проверку откуда она была вызвана. Но так ли это на самом деле?