Boost.Asio, как работает опрос io_context и как проводить опрос в узком цикле?C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Boost.Asio, как работает опрос io_context и как проводить опрос в узком цикле?

Сообщение Anonymous »

Я экспериментировал с Boost.Asio и хочу иметь возможность проводить опросы, а не просто выполнять io_context.run(). Мое приложение в настоящее время состоит из двух объектов io_context, каждый из которых работает в отдельном потоке выполнения. Все было хорошо, когда я использовал рабочие охранники с io_context.run(). Когда я переключился на опрос, у меня возникло преждевременное завершение приложения. Я выяснил, что именно делает опрос, и теперь я предполагаю, что его следует вызывать в узком цикле (возможно, в конце жесткого цикла). Это правильный подход? Для справки, причина, по которой мне нужно это сделать, заключается в том, что мне нужно добиться минимально возможной задержки. Потоки выполняются на изолированных ядрах с правильной настройкой привязки потоков. Теперь мне нужно убедиться, что вся система будет занята опросом. Заранее спасибо!
Я пытался добавить рабочих охранников, но позже выяснилось, что это неправильный подход. Я также пытался запустить опрос в очень узком цикле while, но это просто лишило асинхронные операции, которые «должны» были выполняться в том же потоке. В настоящее время я просто вызываю опрос в конце основного цикла while. Вы можете представить себе следующую структуру кода:
co_spawn(ioc_,runner(),detached);
runner() {
while(true) {
// async
// logic
// async
ioc_.poll()
}
}


Подробнее здесь: https://stackoverflow.com/questions/787 ... tight-loop
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Boost Asio SSL Context Contructor вызывает исключение
    Anonymous » » в форуме C++
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Tutor LMS Pro Как добавить форму или опрос для обратной связи о курсе (опрос)
    Anonymous » » в форуме Php
    0 Ответы
    39 Просмотры
    Последнее сообщение Anonymous
  • Как заставить Jetpack Compose HorizontalPager проводить только вперед (отключить пролистывание назад)?
    Anonymous » » в форуме Android
    0 Ответы
    39 Просмотры
    Последнее сообщение Anonymous
  • Более эффективно проводить менее чем сравнение, а затем сделать меньше или равное сравнению?
    Anonymous » » в форуме C++
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • Context-stroke и context-fill для маркеров в SVG в Chrome не работают, альтернативы?
    Anonymous » » в форуме CSS
    0 Ответы
    30 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C++»