Size: a a a

2020 April 05

ВС

Виталий Сердюк in pro.cxx
А то я ща тут тупые вопросы начну задавать.
источник

BA

Botir Akhmedov in pro.cxx
источник

ВС

Виталий Сердюк in pro.cxx
спасиб
источник

AZ

Alexander Zaitsev in pro.cxx
Скажите пожалуйста, как в Boost.Asio сделать следующую вещь:

Поместить в очередь event, которые должен что-то сделать через какой-то промежуток времени.
источник

ПК

Побитый Кирпич in pro.cxx
Alexander Zaitsev
Скажите пожалуйста, как в Boost.Asio сделать следующую вещь:

Поместить в очередь event, которые должен что-то сделать через какой-то промежуток времени.
Через таймеры
источник

DF

Dollar Føølish in pro.cxx
На встроенном тредпуле
источник

AZ

Alexander Zaitsev in pro.cxx
Побитый Кирпич
Через таймеры
это я понимаю, я не хочу где-то прихранивать в левом месте таймер - я хочу его отправить внутрь какого-нибудь post/dispatch/wrap
источник

AZ

Alexander Zaitsev in pro.cxx
Хочу очередь, в которую я постоянно буду накидывать ивенты, которые будут выполняться через какой-то промежуток времени и убираться из очереди вместе с их таймерами
источник

S

Stolyarchuk in pro.cxx
Обернуть дедлайн таймер, отправить в пул шаред принтер. Лямбда скапчит, когда сдиспатчится всё умрёт. Так?
источник

DF

Dollar Føølish in pro.cxx
Мне кажется тут нужно глубокое знание апи. Встроенный тред пул не имел никаких таймеров когда я писал на асио
источник

AZ

Alexander Zaitsev in pro.cxx
Stolyarchuk
Обернуть дедлайн таймер, отправить в пул шаред принтер. Лямбда скапчит, когда сдиспатчится всё умрёт. Так?
да, примерно так, если принтер == поинтер
источник

DF

Dollar Føølish in pro.cxx
У меня т9 тоже на принтер заменяет
источник

AZ

Alexander Zaitsev in pro.cxx
Самая большая засада - это менеджить лайфтайм таймера. потому что если умирает, то как я понял он сразу вызывает коллбэк, чего мне не надо.

Наверное захват std::shared_ptr в коллбэк и пихание его в io_service через post/dispatch/wrap проблему решают. Но неужто ничего красивее нет?
источник

AZ

Alexander Zaitsev in pro.cxx
и если вдруг Boost.Asio в более красивое не могёт - мб есть какой event loop, который умеет в такое красиво?
источник

CD

Constantine Drozdov in pro.cxx
Alexander Zaitsev
и если вдруг Boost.Asio в более красивое не могёт - мб есть какой event loop, который умеет в такое красиво?
ну смотри, если событие не отзываемое, то там разумеется в unique-версии в очередь пихается, а если отзываемое, то у тебя две точки отзыва (очередь и запостивший) и у тебя по-любому shared
источник

AZ

Alexander Zaitsev in pro.cxx
Constantine Drozdov
ну смотри, если событие не отзываемое, то там разумеется в unique-версии в очередь пихается, а если отзываемое, то у тебя две точки отзыва (очередь и запостивший) и у тебя по-любому shared
я не совсем понимаю, куда там unique запихивать то. Если в коллбэк запихивать, то при асинхронном вейте мы сразу выходим за скоуп и таймер помирает. Если писать свою очередь, то мне в коллбэке ещё и писать очистку таймера из очереди?
источник

CD

Constantine Drozdov in pro.cxx
Alexander Zaitsev
я не совсем понимаю, куда там unique запихивать то. Если в коллбэк запихивать, то при асинхронном вейте мы сразу выходим за скоуп и таймер помирает. Если писать свою очередь, то мне в коллбэке ещё и писать очистку таймера из очереди?
> выходим за скоуп и таймер помирает
это случай 2 и шаред, у тебя очередь в режиме запостил-забыл может просто условный function положить
источник

CD

Constantine Drozdov in pro.cxx
если ты пишешь свою очередь и хочешь нахалявить, то ты постишь событие с лишней косвенностью, да
источник

AZ

Alexander Zaitsev in pro.cxx
Constantine Drozdov
> выходим за скоуп и таймер помирает
это случай 2 и шаред, у тебя очередь в режиме запостил-забыл может просто условный function положить
а как ты первый написать хочешь? кто будет контролировать, что таймер не помер?
источник

AZ

Alexander Zaitsev in pro.cxx
Constantine Drozdov
если ты пишешь свою очередь и хочешь нахалявить, то ты постишь событие с лишней косвенностью, да
с радостью не писал бы свою :)
источник