Запустите цикл обработки событий объекта 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()
также может использоваться для отправки готовых обработчиков, но без блокировки.