@Sdelan_v_CCCP

Есть ли в процессах/потоках linux функция ожидания флага?

Всем привет! Интересует такой момент, есть ли в linux функция, которая приостанавливает выполнение процесса/потока до тех пор, пока не будет установлен определенный флаг.

Пример из eCos:
#define OUR_EVENT_TYPE        0x1
//определение нашего флага
static cyg_flag_t   our_event;

//функция потока
void our_thread(cyg_addrword_t data)
{
while (1) {
      
           (void)cyg_flag_wait(&our_event, OUR_EVENT_TYPE ,CYG_FLAG_WAITMODE_OR | CYG_FLAG_WAITMODE_CLR);

//дальше что-то выполняется
...
}


В данном коде, после запуска потока, функция cyg_flag_wait приостанавливается/ждет, пока не будет установлен флаг our_event функцией cyg_flag_setbits(&our_event, OUR_EVENT_TYPE).

Есть ли что-то подобное в linux. Варианты типа запустить процесс после того как произойдет какое либо событие не подходит, так как после выполнения цикла while он снова ждет, пока флаг ну будет задействован.
  • Вопрос задан
  • 2437 просмотров
Решения вопроса 1
vvpoloskin
@vvpoloskin
Инженер связи
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы