9 #include <so_5_extra/env_infrastructures/asio/impl/common.hpp> 11 #include <so_5/rt/impl/h/st_env_infrastructure_reuse.hpp> 12 #include <so_5/details/h/sync_helpers.hpp> 13 #include <so_5/details/h/at_scope_exit.hpp> 14 #include <so_5/details/h/invoke_noexcept_code.hpp> 16 #include <so_5/h/stdcpp.hpp> 70 template<
typename Activity_Tracker >
86 outliving_reference_t<::asio::io_context> io_svc,
88 outliving_reference_t<Activity_Tracker> activity_tracker )
96 push( execution_demand_t demand )
override 137 current_thread_id_t thread_id )
168 struct disp_ds_name_parts_t
final 229 template<
typename Activity_Tracker >
236 outliving_reference_t<::asio::io_context> io_svc,
240 coop_listener_unique_ptr_t coop_listener,
242 mbox_t stats_distribution_mbox );
245 launch( env_init_t init_fn )
override;
252 coop_unique_ptr_t coop )
override;
256 nonempty_name_t name,
257 coop_dereg_reason_t dereg_reason )
override;
261 coop_t * coop )
override;
265 std::string coop_name )
override;
277 const std::type_index & type_wrapper,
278 const message_ref_t & msg,
280 std::chrono::steady_clock::duration pause )
override;
344 template<
typename Activity_Tracker >
346 outliving_reference_t<::asio::io_context> io_svc,
348 coop_listener_unique_ptr_t coop_listener,
349 mbox_t stats_distribution_mbox )
365 template<
typename Activity_Tracker >
381 template<
typename Activity_Tracker >
413 template<
typename Activity_Tracker >
416 coop_unique_ptr_t coop )
421 template<
typename Activity_Tracker >
424 nonempty_name_t name,
425 coop_dereg_reason_t dereg_reason )
430 template<
typename Activity_Tracker >
443 template<
typename Activity_Tracker >
446 std::string coop_name )
452 template<
typename Activity_Tracker >
500 template<
typename Activity_Tracker >
503 const std::type_index & type_index,
504 const message_ref_t & msg,
506 std::chrono::steady_clock::duration pause )
524 template<
typename Activity_Tracker >
531 template<
typename Activity_Tracker >
538 template<
typename Activity_Tracker >
545 template<
typename Activity_Tracker >
559 template<
typename Activity_Tracker >
568 template<
typename Activity_Tracker >
576 template<
typename Activity_Tracker >
609 template<
typename Activity_Tracker >
663 using namespace impl;
667 environment_params_t & env_params,
668 mbox_t stats_distribution_mbox )
670 environment_infrastructure_t * obj =
nullptr;
674 const auto tracking = env_params.work_thread_activity_tracking();
675 if( work_thread_activity_tracking_t::on == tracking )
676 obj =
new env_infrastructure_t< reusable::real_activity_tracker_t >(
677 outliving_mutable(io_svc),
679 env_params.so5__giveout_coop_listener(),
680 std::move(stats_distribution_mbox) );
682 obj =
new env_infrastructure_t< reusable::fake_activity_tracker_t >(
683 outliving_mutable(io_svc),
685 env_params.so5__giveout_coop_listener(),
686 std::move(stats_distribution_mbox) );
688 return environment_infrastructure_unique_ptr_t(
690 environment_infrastructure_t::default_deleter() );
Ranges for error codes of each submodules.