A smart pointer is not required to hold the work.
diff --git a/asio/src/examples/cpp03/http/server2/io_context_pool.cpp b/asio/src/examples/cpp03/http/server2/io_context_pool.cpp
index 9ce0fc4..049ac98 100644
--- a/asio/src/examples/cpp03/http/server2/io_context_pool.cpp
+++ b/asio/src/examples/cpp03/http/server2/io_context_pool.cpp
@@ -27,9 +27,8 @@
for (std::size_t i = 0; i < pool_size; ++i)
{
io_context_ptr io_context(new asio::io_context);
- work_ptr work(new io_context_work(asio::make_work_guard(*io_context)));
io_contexts_.push_back(io_context);
- work_.push_back(work);
+ work_.push_back(asio::make_work_guard(*io_context));
}
}
diff --git a/asio/src/examples/cpp03/http/server2/io_context_pool.hpp b/asio/src/examples/cpp03/http/server2/io_context_pool.hpp
index a20f489..6a573c5 100644
--- a/asio/src/examples/cpp03/http/server2/io_context_pool.hpp
+++ b/asio/src/examples/cpp03/http/server2/io_context_pool.hpp
@@ -40,13 +40,12 @@
typedef boost::shared_ptr<asio::io_context> io_context_ptr;
typedef asio::executor_work_guard<
asio::io_context::executor_type> io_context_work;
- typedef boost::shared_ptr<io_context_work> work_ptr;
/// The pool of io_contexts.
std::vector<io_context_ptr> io_contexts_;
/// The work that keeps the io_contexts running.
- std::vector<work_ptr> work_;
+ std::vector<io_context_work> work_;
/// The next io_context to use for a connection.
std::size_t next_io_context_;