The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Указание таймаута при вызове select() (gcc optimization select timeout)


<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>
Ключевые слова: gcc, optimization, select, timeout,  (найти похожие документы)
Date: Thu, 31 Oct 2002 10:46:00 +0500 From: Valentin Nechayev <netch@segfault.kiev.ua> Newsgroups: ftn.ru.unix.prog Subject: Указание таймаута при вызове select() as> p.s. каким образом можно в однотредовой программе избавиться от 100% загрузки as> процессора в бесконечном цикле кроме usleep и подобных? в цикле, к примеру, as> неблокирующее чтение из сокета и ввод с клавиатуры, тоже неблокирующий. то есть as> можно селекты с таймаутами делать и так далее. Да. as> но вот не нравится необходимость as> указывать некоторый фиксированный таймаут. возникает вопрос -- почему именно as> такой, а не другой? Фиксированный он только на момент, когда ты входишь в select(). А по какому принципу ты его подсчитаешь перед этим - твое дело. Можешь делать вечный сон и выходить из него по сигналу, если какое-то таймерное событие наступило. Можешь определять первое следующее событие и ставить в select() нужный таймаут. Можешь смешанно делать. Всё тут полностью up to you ;) Фиксированный таймаут обычно делается, когда надо в цикле делать поллинг какого-то внешнего фактора, о наступлении которого не сообщат. Hапример, нет доступных везде средств нотификации изменения каталога и файла по их имени, поэтому cron делает поллинг раз в минуту, проверяя /etc/crontab и /var/cron/tabs (/var/spool/cron, etc.) на изменение. Впрочем, там таймаут тоже не фиксированный по длительности, а фиксированный по сути - до начала следующей минуты.

<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>

 Добавить комментарий
Имя:
E-Mail:
Заголовок:
Текст:




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру