Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Отложенная отправка сигнала процессу  (Прочитано 9649 раз)
0 Пользователей и 1 Гость смотрят эту тему.
demon051
Помогающий

ru
Offline Offline

« : 14-09-2018 06:06 » 

Здравствуйте!

Есть ли возможность отправить процессу сигнал с предварительной задержкой?

сейчас делаю так

Код:
bool generateSignal(int sig)
{
    union sigval value;
    value.sival_int = sig;
    value.sival_ptr = 0;
    sigqueue(getpid(), sig, value);
}

но теперь появилась необходимость задержки перед тем как сигнал уйдет...
понятно, что можно таймером пользоваться, но не хотелось бы
Записан
darkelf
Молодой специалист

ua
Offline Offline

« Ответ #1 : 14-09-2018 06:21 » 

как вариант - отсылать сигнал при помощи таймера.
Записан
demon051
Помогающий

ru
Offline Offline

« Ответ #2 : 14-09-2018 06:23 » 

как вариант - отсылать сигнал при помощи таймера.
да это-то понятно.
но может быть есть каие-то иные штатные механизмы отложенной отправки?
Записан
darkelf
Молодой специалист

ua
Offline Offline

« Ответ #3 : 14-09-2018 06:37 » 

можно при помощи pthread-ов и sleep()-ов, но не уверен, что это правильный выбор.
Записан
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #4 : 14-09-2018 07:33 » 

Это не realtime, не стоит ждать каких-то задержек. "Выйдет вовремя и прибудет в срок!"
Скорее надо бороться с первопричиной такого желания, чем искать способ задержки отправки. Если получателю нужна задержка, пусть сам ее и реализовывает. Ну, а если изменить получателя нельзя, сделай сам.
Что это ха алгоритм такой?
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
demon051
Помогающий

ru
Offline Offline

« Ответ #5 : 14-09-2018 09:40 » 

Это не realtime, не стоит ждать каких-то задержек. "Выйдет вовремя и прибудет в срок!"
Скорее надо бороться с первопричиной такого желания, чем искать способ задержки отправки. Если получателю нужна задержка, пусть сам ее и реализовывает. Ну, а если изменить получателя нельзя, сделай сам.
Что это ха алгоритм такой?

алгоритм подтверждения доступа Улыбаюсь на подтверждение дается некоторое время, если человек не успел, то система должна сама через некий таймаут или разрешить или запретить - как настроено.
таймеров уже хоть опой ешь в системе. поток со слипами не нравится.
думал может можно по хитрому сигнал пульнуть, чтобы он через этот таймаут пришел и обработался.
Записан
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #6 : 14-09-2018 22:52 » 

А нафига "поток со слипами"? Посмотри на событийные циклы (event loop). Будь у тебя хоть сто таймеров, можно найти время от сейчас до следующего и обойтись одним таймером и одним потоком. Не нужно сто потоков и сто таймеров. В циклами событий главное не увлекаться вычислениями, можно как раз переносить их в потоки. А для коротких действий это очень эффективно.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines