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)
Задача была создана но не активирована или находится в стадии завершения (блок управления задачей или ещё не создан, или уже был удалён).
Задача готова к выполнению и находится в очереди, но ешё не запущена.
В настоящий момент задача запущена на выполнение.
Задача в заблокированном состоянии, находится вне очереди и не готова к выполнению:
- delayed - отложена до какого-то времени;
- waiting for an event - ожидает события;
- suspended - остановлена.
Задача завершается и находится в процессе освобождения ресурсов (применяется к объединяемым задачам (joinable threads)).
Задача не существует или не может быть обработана планировщиком. Ошибка в вызове функции получения состояния задачи.
Предотвращает оптимизацию перечисления компилятором (в попытке уменьшения размера перечисления).