tn_sys_exit_critical()

Вызов функции разрешает переключение контекста и системные прерывания после вызова парной функции tn_sys_enter_critical().

Вызов:

void tn_sys_exit_critical (void);

Разрешен вызов:

В контексте задачи

Параметры функции:

нет

Возвращаемые значения:

нет

Пример вызова:

long long Global_Variable;
 
void TN_TASK Task_1 (void *param)
{
    for (;;)
    {
        tn_sys_enter_critical();
        Global_Variable = 1255456;
        tn_sys_exit_critical();
    }
}
 
void TN_TASK Task_2 (void *param)
{
    long long tmp;
 
    for (;;)
    {
        tn_sem_acquire(&sem_rc, TN_WAIT_INFINITE);
 
        tn_sys_enter_critical();
        tmp = Global_Variable;
        tn_sys_exit_critical();
 
        if (tmp)
            tn_sem_signal(&sem_tr);
    }
}



К списку сервисов