|
0 / 0 / 0
Регистрация: 15.06.2011
Сообщений: 10
|
|
Отменяемые таймеры15.06.2011, 17:01. Показов 3371. Ответов 14
Метки нет (Все метки)
Нужно создать отменяемый таймер. т.е. если таймер был запущен и до истечения заданного времени другая нить решила что таймер не нужен - он выключается или запускается заново с другим значением таймаута.
Я это пытался сделать с помощью clock_gettime / pthread_cond_timedwait Не очень успешно. Оно в принципе работает, но есть проблема. Работает только с CLOCK_REALTIME и категорически не желает работать с CLOCK_MONOTONIC. Поскольку CLOCK_REALTIME страдает при смене системного времени этот вариант к использованию непригоден. Что можно придумать для решения такой задачи ?
0
|
|
| 15.06.2011, 17:01 | |
|
Ответы с готовыми решениями:
14
Таймеры Таймеры |
|
1259 / 650 / 44
Регистрация: 06.02.2011
Сообщений: 1,654
|
|
| 15.06.2011, 17:50 | |
|
Гляньте на timer_create
1
|
|
|
0 / 0 / 0
Регистрация: 15.06.2011
Сообщений: 10
|
||
| 15.06.2011, 17:55 [ТС] | ||
|
Мне нужно в произвольный момент менять время срабатывания уже запущенного таймера.
0
|
||
|
1259 / 650 / 44
Регистрация: 06.02.2011
Сообщений: 1,654
|
|
| 15.06.2011, 18:01 | |
|
А чем timer_settime не годиться для этой мисии???
1
|
|
|
0 / 0 / 0
Регистрация: 15.06.2011
Сообщений: 10
|
||
| 16.06.2011, 07:51 [ТС] | ||
|
0
|
||
|
1259 / 650 / 44
Регистрация: 06.02.2011
Сообщений: 1,654
|
|
| 16.06.2011, 09:38 | |
|
Ведет себя ровно как написано в манах. CLOCK_MONOTONIC умеет и это тоже написано в мане... Про CLOCK_MONOTONIC_RAW ни чего сказать не могу, тк всеми силами стараюсь избегать линуксячих изобретений.
0
|
|
|
0 / 0 / 0
Регистрация: 15.06.2011
Сообщений: 10
|
||
| 20.06.2011, 10:20 [ТС] | ||
|
Теперь следующий вопросик. В каком случае меньше побочные расходы процессорного времени при срабатывании таймера - при вызове таймерной функции с созданием нити (параметр SIGEV_THREAD) или если я вручную создам таймерную нить которая будет сидеть в sigwait ожидая аларм а в таймере будет посылаться SIGALRM конкретной нити (параметр SIGEV_THREAD_ID с заданием конкретного TID) ? Сейчас у меня работает второй вариант.
0
|
||
|
1259 / 650 / 44
Регистрация: 06.02.2011
Сообщений: 1,654
|
||
| 20.06.2011, 11:23 | ||
Да, думаю это дешевле чем SIGEV_THREAD
0
|
||
|
0 / 0 / 0
Регистрация: 15.06.2011
Сообщений: 10
|
|||
| 20.06.2011, 11:44 [ТС] | |||
Делаю массив таймеров для отработки таймаутов в коммуникационном протоколе. Таймеров нужно примерно две сотни.
0
|
|||
|
1259 / 650 / 44
Регистрация: 06.02.2011
Сообщений: 1,654
|
||
| 20.06.2011, 12:07 | ||
|
0
|
||
|
0 / 0 / 0
Регистрация: 15.06.2011
Сообщений: 10
|
||
| 20.06.2011, 12:12 [ТС] | ||
|
0
|
||
|
1259 / 650 / 44
Регистрация: 06.02.2011
Сообщений: 1,654
|
|
| 20.06.2011, 12:17 | |
|
То же вариант, со своими плюсами и минусами) У вас больше сисколов на установку таймера, у меня холостые срабатывания, повторюсь, вам виднее как в вашей ситуации будет лучше)
0
|
|
|
0 / 0 / 0
Регистрация: 15.06.2011
Сообщений: 10
|
||||||
| 22.06.2011, 12:22 [ТС] | ||||||
|
Не все гладко оказалось.
У меня сигнал генерится дважды: немедленно при взводе таймера функцией timer_settime и по истечении заданного таймаута. Таймеры у меня однократные. Пришлось в обработчик сигнала вставить проверку сколько осталось до срабатывания таймера
0
|
||||||
|
1259 / 650 / 44
Регистрация: 06.02.2011
Сообщений: 1,654
|
|
| 22.06.2011, 14:54 | |
|
Если у вас не TIMER_ABSTIME, то покажите как timer_settime() делаете, а если оно, то уж простите, вы сами себе проблему на ровном месте создаете.
0
|
|
|
0 / 0 / 0
Регистрация: 15.06.2011
Сообщений: 10
|
|||||||
| 22.06.2011, 16:00 [ТС] | |||||||
0
|
|||||||
| 22.06.2011, 16:00 | |
|
Помогаю со студенческими работами здесь
15
Таймеры Таймеры таймеры Таймеры Таймеры в Mysql Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать программный контроль на предмет проведения документа. . .
|
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
|
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение:
DISM / Online / Add-Capability / CapabilityName:WMIC~~~~
Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
|
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: при создании документов установить период списания автоматически. . .
|
|
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2.
Задача: вывести данные из ТЧ нетипового документа. . .
|
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению.
На форме документа создается. . .
|
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
|
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
|