====== OSA : OS_LeaveCriticalSection ====== **OS_LeaveCriticalSection ()**\\ === === {{osa:ref:attr_call_task.png|Разрешен вызов только в контексте задачи}} Выход из критической секции. При этом восстанавливаются прерывания (из внутренней системной переменной) и разблокируются все задачи. === Разрешен вызов: === Только из задачи === Параметры функции: === Нет === Возвращаемое значение: === Нет === Пример вызова: === const char * TestString = "We are in Critical Section now.\n"; void Task (void) { static const char * str; for (;;) { /*...*/ OS_EnterCriticalSection (); // Теперь мы можем отправлять данные через USART, не опасаясь, // что какая-нибудь задача попытается захватить этот ресурс str = TestString; while (*str) { OS_Cond_Wait(TRMT); // Ждем освобождения передатчика USART TXREG = *str++; } OS_LeaveCriticalSection (); /*...*/ } } === См. также === ---- * [[osa:ref:services:alphabetical|Алфавитный указатель]] * [[osa:ref:services:brieflist|Все сервисы]] ~~UP~~