io_service :: poll_one Запустить цикл обработки событий объекта io_service
выполнить один готовый обработчик.
против
io_service :: run_one Запустить цикл обработки событий объекта io_service
выполнить не более одного обработчика.
Из этого объяснения может показаться, что poll_one может выполнять более одного обработчика? Использует ли run_one или poll_one какой-либо поток, который называется run (), или только поток, который вызывает poll_one / run_one?
Документация для ASIO очень скудна.