Запустите цикл обработки событий объекта io_service.
std::size_t run();
Функциональные блоки run() до тех пор, пока не будет завершена вся работа и не будет отправлено больше обработчиков, или пока не будет остановлен io_service.
Несколько потоков могут вызывать функцию run() для настройки пула потоков, из которого io_service может выполнять обработчики. Все потоки, ожидающие в пуле, эквивалентны, и служба io_service может выбрать любой из них для вызова обработчика.
Нормальный выход из функции run() подразумевает остановку объекта io_service (функция stopped() возвращает true). Последующие вызовы run, run_one(), poll() или poll_one() будут возвращаться немедленно, если не будет предварительного вызова reset().
Количество исполнителей, которые были казнены.
- boost::system::system_error
Выброшен на провал.
Функция run() не должна вызываться из потока, который в настоящее время вызывает один из run, run_one(), poll()() на том же объекте io_service.
Функция poll() также может использоваться для отправки готовых обработчиков, но без блокировки.