osThreadState_t - перечисление состояния потока / задачи в CMSIS-RTOS2

Состояние потока / задачи, полученное с помощью функции osThreadGetState(). В случае ошибки функции osThreadGetState() или вызова её из процедуры обработки прерывания (ISR) возвращается osThreadError, в ином случае функция возвращает состояние задачи.

/// Thread state.

typedef  enum {
   osThreadInactive       =  0,         /// Inactive.
   osThreadReady          =  1,         /// Ready.
   osThreadRunning        =  2,         /// Running.
   osThreadBlocked        =  3,         /// Blocked.
   osThreadTerminated     =  4,         /// Terminated.
   osThreadError          = -1,         /// Error.
   osThreadReserved       = 0x7FFFFFFF  /// Prevents enum down-size compiler optimization.
} osThreadState_t;


Перечислители (enumerator)

osThreadInactive
Inactive - неактивное состояние.

Задача была создана но не активирована или находится в стадии завершения (блок управления задачей или ещё не создан, или уже был удалён).

osThreadReady
Ready - состояние готовности.

Задача готова к выполнению и находится в очереди, но ешё не запущена.

osThreadRunning
Running - задача выполняется.

В настоящий момент задача запущена на выполнение.

osThreadBlocked
Blocked - задача заблокирована.

Задача в заблокированном состоянии, находится вне очереди и не готова к выполнению:

-  delayed - отложена до какого-то времени;

-  waiting for an event - ожидает события;

-  suspended - остановлена.

osThreadTerminated
Terminated - состояние завершения задачи.

Задача завершается и находится в процессе освобождения ресурсов (применяется к объединяемым задачам (joinable threads)).

osThreadError
Error - ошибка задачи.

Задача не существует или не может быть обработана планировщиком. Ошибка в вызове функции получения состояния задачи.

osThreadReserved
Зарезервировано. Не используется.

Предотвращает оптимизацию перечисления компилятором (в попытке уменьшения размера перечисления).