Как заставить boost :: asio отдавать приоритет завершению вызовов async_write по сравнению с запуском других обработчиков?

Я реализую набор простых протоколов, используя boost :: asio (схемы передачи без внимания). Они связаны с процессором при запуске. Чтобы повысить эффективность, я хочу, чтобы оба хоста работали как можно дольше. Если у хоста A есть выбор между предварительным формированием двух задач, одна из которых позволит хосту B начать вычисления, а другая - нет, я хочу, чтобы хост A выбрал первое.

В настоящее время io_service запускает обработчики с интенсивными вычислениями до async_writes . Если окно tcp не заполнено (или какое-то аналогичное условие блокирует запись данных в сокер), почти наверняка лучше завершить async_write, чем запускать какой-либо другой обработчик.

Я видел пример asio очереди с приоритетом для обработчиков. Является ли переопределение async_write для использования такой очереди приоритетов единственным решением моей проблемы?

5
задан NmdMystery 9 January 2014 в 05:13
поделиться