Когда вы вызываете конструктор без параметров в io_service
, вызов CreateIoCompletionPort
завершается с использованием счетчика потоков 0xffffffff в коде здесь:
void win_iocp_io_service::init(size_t concurrency_hint)
{
iocp_.handle = ::CreateIoCompletionPort(INVALID_HANDLE_VALUE, 0, 0,
static_cast<DWORD>((std::min<size_t>)(concurrency_hint, DWORD(~0))));
if (!iocp_.handle)
{
DWORD last_error = ::GetLastError();
boost::system::error_code ec(last_error,
boost::asio::error::get_system_category());
boost::asio::detail::throw_error(ec, "iocp");
}
}
Не уверен, как Windows интерпретирует этоно вызов работает нормально, поэтому я предполагаю, что это то же самое, что и использование 0. Я предполагаю, что ОС знает лучше?