====== OSA : OS_IsInCriticalSection ======
**bool OS_IsInCriticalSection ()**\\
=== ===
Возвращает //''true''//, если одна из задач находится в критической секции.
=== Разрешен вызов: ===
Везде
=== Параметры функции: ===
Нет
=== Возвращаемое значение: ===
{| class = "fpl"
|-
|//''false''//
| Критическая секция не активна
|-
|//''true''//
| Одна из задач находится в критической секции
|}
=== Пример вызова: ===
void interrupt isr (void)
{
if (TMR2IF) {
TMR2IF = 0;
OS_Timer();
}
}
void main (void)
{
/*...*/
for (;;)
{
OS_Sched();
if (OS_IsInCriticalSection () && TMR2IF) {
TMR2IF = 0;
OS_Timer(); // Т.к. в критической секции прерывания запрещены,
// мы таймер обрабатываем отдельно
};
/*...*/
}
}
=== См. также ===
----
* [[osa:ref:services:alphabetical|Алфавитный указатель]]
* [[osa:ref:services:brieflist|Все сервисы]]
~~UP~~