~~NOTOC~~ ===== tn_sys_enter_critical() ===== Вызов функции запрещает переключение контекста (в том числе и системные прерывания) до тех пор, пока не будет вызвана парная функция [[tnkernel:ref:sys:tn_sys_exit_critical|tn_sys_exit_critical()]]. **Вызов:** void tn_sys_enter_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); } } \\ ---- [[tnkernel:ref:sys:intro#Системные сервисы|К списку сервисов]]