LINUX.ORG.RU

Таймеры!


0

0

Привествую всех! Вопрос! Нужно заводить одновременно 32 таймаута! Какими таймерами лучше пользоваться, чтоб процесс спал, пока какой нибудь не сработает?

И какие вообще есть таймеры?

Спасибо.

anonymous

Re: Таймеры!

как таковых таймеров я не знаю... но проблему "усыпления" и синхронизаци решею с помощью sem_trywait
в самом простом виде это так

// глобальна настолько, чтоб была видна внутри потока
sem_post(&key_pressed_sem);

// собственно поток
while (1)
{
   if (sem_trywait(&key_pressed_sem) != 0)
   { // ничего не произошло - сплю
      nanosleep(&timeout, &rest);
   }
   else
   { // что-то случилось - работаю
      printf("deal with it!\n");
      break;
   }
}   

// разблокируй поток
sem_post(&key_pressed_sem);

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.