src/corosio/src/select_context.cpp

100.0% Lines (13/13) 100.0% Functions (3/3)
src/corosio/src/select_context.cpp
Line Hits Source Code
1 //
2 // Copyright (c) 2026 Steve Gerbino
3 //
4 // Distributed under the Boost Software License, Version 1.0. (See accompanying
5 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
6 //
7 // Official repository: https://github.com/cppalliance/corosio
8 //
9
10 #include <boost/corosio/select_context.hpp>
11
12 #if BOOST_COROSIO_HAS_SELECT
13
14 #include "src/detail/select/scheduler.hpp"
15 #include "src/detail/select/sockets.hpp"
16 #include "src/detail/select/acceptors.hpp"
17
18 #include <thread>
19
20 namespace boost::corosio {
21
22 133 select_context::select_context()
23 133 : select_context(std::thread::hardware_concurrency())
24 {
25 133 }
26
27 133 select_context::select_context(unsigned concurrency_hint)
28 {
29 266 sched_ = &make_service<detail::select_scheduler>(
30 133 static_cast<int>(concurrency_hint));
31
32 133 make_service<detail::select_socket_service>();
33 133 make_service<detail::select_acceptor_service>();
34 133 }
35
36 133 select_context::~select_context()
37 {
38 133 shutdown();
39 133 destroy();
40 133 }
41
42 } // namespace boost::corosio
43
44 #endif // BOOST_COROSIO_HAS_SELECT
45