Change type of concurrency_hint to int.
This commit is contained in:
parent
5f9639bc1b
commit
81f7fbd8f6
@ -84,7 +84,7 @@ struct scheduler::work_cleanup
|
||||
};
|
||||
|
||||
scheduler::scheduler(
|
||||
asio::execution_context& ctx, std::size_t concurrency_hint)
|
||||
asio::execution_context& ctx, int concurrency_hint)
|
||||
: asio::detail::execution_context_service_base<scheduler>(ctx),
|
||||
one_thread_(concurrency_hint == 1),
|
||||
mutex_(),
|
||||
|
@ -62,7 +62,7 @@ struct win_iocp_io_context::timer_thread_function
|
||||
};
|
||||
|
||||
win_iocp_io_context::win_iocp_io_context(
|
||||
asio::execution_context& ctx, size_t concurrency_hint)
|
||||
asio::execution_context& ctx, int concurrency_hint)
|
||||
: execution_context_service_base<win_iocp_io_context>(ctx),
|
||||
iocp_(),
|
||||
outstanding_work_(0),
|
||||
@ -75,8 +75,7 @@ win_iocp_io_context::win_iocp_io_context(
|
||||
ASIO_HANDLER_TRACKING_INIT;
|
||||
|
||||
iocp_.handle = ::CreateIoCompletionPort(INVALID_HANDLE_VALUE, 0, 0,
|
||||
static_cast<DWORD>(concurrency_hint < DWORD(~0)
|
||||
? concurrency_hint : DWORD(~0)));
|
||||
static_cast<DWORD>(concurrency_hint >= 0 ? concurrency_hint : DWORD(~0)));
|
||||
if (!iocp_.handle)
|
||||
{
|
||||
DWORD last_error = ::GetLastError();
|
||||
|
@ -44,7 +44,7 @@ public:
|
||||
// Constructor. Specifies the number of concurrent threads that are likely to
|
||||
// run the scheduler. If set to 1 certain optimisation are performed.
|
||||
ASIO_DECL scheduler(asio::execution_context& ctx,
|
||||
std::size_t concurrency_hint = 0);
|
||||
int concurrency_hint = 0);
|
||||
|
||||
// Destroy all user-defined handler objects owned by the service.
|
||||
ASIO_DECL void shutdown();
|
||||
|
@ -48,7 +48,7 @@ public:
|
||||
// Constructor. Specifies a concurrency hint that is passed through to the
|
||||
// underlying I/O completion port.
|
||||
ASIO_DECL win_iocp_io_context(asio::execution_context& ctx,
|
||||
size_t concurrency_hint = 0);
|
||||
int concurrency_hint = -1);
|
||||
|
||||
// Destroy all user-defined handler objects owned by the service.
|
||||
ASIO_DECL void shutdown();
|
||||
|
@ -33,21 +33,20 @@
|
||||
namespace asio {
|
||||
|
||||
io_context::io_context()
|
||||
: impl_(create_impl())
|
||||
: impl_(add_impl(new impl_type(*this)))
|
||||
{
|
||||
}
|
||||
|
||||
io_context::io_context(std::size_t concurrency_hint)
|
||||
: impl_(create_impl(concurrency_hint))
|
||||
io_context::io_context(int concurrency_hint)
|
||||
: impl_(add_impl(new impl_type(*this, concurrency_hint)))
|
||||
{
|
||||
}
|
||||
|
||||
io_context::impl_type& io_context::create_impl(std::size_t concurrency_hint)
|
||||
io_context::impl_type& io_context::add_impl(io_context::impl_type* impl)
|
||||
{
|
||||
asio::detail::scoped_ptr<impl_type> impl(
|
||||
new impl_type(*this, concurrency_hint));
|
||||
asio::add_service<impl_type>(*this, impl.get());
|
||||
return *impl.release();
|
||||
asio::detail::scoped_ptr<impl_type> scoped_impl(impl);
|
||||
asio::add_service<impl_type>(*this, scoped_impl.get());
|
||||
return *scoped_impl.release();
|
||||
}
|
||||
|
||||
io_context::~io_context()
|
||||
|
@ -170,7 +170,7 @@ public:
|
||||
* @param concurrency_hint A suggestion to the implementation on how many
|
||||
* threads it should allow to run simultaneously.
|
||||
*/
|
||||
ASIO_DECL explicit io_context(std::size_t concurrency_hint);
|
||||
ASIO_DECL explicit io_context(int concurrency_hint);
|
||||
|
||||
/// Destructor.
|
||||
/**
|
||||
@ -479,8 +479,8 @@ public:
|
||||
#endif // !defined(ASIO_NO_DEPRECATED)
|
||||
|
||||
private:
|
||||
// Helper function to create the implementation.
|
||||
ASIO_DECL impl_type& create_impl(std::size_t concurrency_hint = 0);
|
||||
// Helper function to add the implementation.
|
||||
ASIO_DECL impl_type& add_impl(impl_type* impl);
|
||||
|
||||
// Backwards compatible overload for use with services derived from
|
||||
// io_context::service.
|
||||
|
Loading…
Reference in New Issue
Block a user