|
Flow-IPC 3.0.0
Flow-IPC project: Full implementation reference.
|
Grouping of compile-time config/knobs (as of this writing: constants) governing some of the behavior of ipc::session sessions. More...
#include <session_cfg.hpp>
Static Public Attributes | |
| static constexpr util::Fine_duration | S_PING_PERIOD = boost::chrono::seconds{2} |
| The period with which each session-internal channel – notably the session master channel; also the internal channel used by an arena-lending SHM-provider (as of this writing SHM-jemalloc) – sends low-level keep-alive pings to the opposing peer. More... | |
| static constexpr util::Fine_duration | S_IDLE_TIMEOUT = boost::chrono::seconds{15} |
| The idle timeout of each session-internal channel (see S_PING_PERIOD): if no low-level traffic – including the opposing side's pings – arrives in this long, the channel is considered hosed; and hence the session is too. More... | |
Private Member Functions | |
| Session_cfg ()=delete | |
| Forbid instantiation, for it is pointless. | |
Grouping of compile-time config/knobs (as of this writing: constants) governing some of the behavior of ipc::session sessions.
Some of these could be viewed as implementation details; nevertheless they are public, much like transport::Native_socket_stream_cfg: it is harmless, and it can be helpful for logging/reporting or for understanding the system's behavior (e.g., how quickly a stuck opposing process is detected).
Session / Session_server template parameters into a struct; possibly per-Client_app knobs). Its constants may then become run-time and/or per-session-configurable. Definition at line 43 of file session_cfg.hpp.
|
staticconstexpr |
The idle timeout of each session-internal channel (see S_PING_PERIOD): if no low-level traffic – including the opposing side's pings – arrives in this long, the channel is considered hosed; and hence the session is too.
See transport::Channel::idle_timer_run().
Its purpose is to detect an opposing process that is stuck (alive but not functioning), as opposed to dead (detected immediately regardless). As a false positive (hosing a healthy session over a transient stall) is costlier than slower detection of a stuck peer, the value is generous relative to S_PING_PERIOD.
Definition at line 67 of file session_cfg.hpp.
Referenced by ipc::session::Server_session_impl< MQ_TYPE_OR_NONE, TRANSMIT_NATIVE_HANDLES, Mdt_payload, SHM_TYPE_OR_NONE, SHM_MAX_HNDL_SZ, GRACEFUL_FINISH_REQUIRED >::async_accept_log_in(), ipc::session::Client_session_impl< MQ_TYPE_OR_NONE, TRANSMIT_NATIVE_HANDLES, Mdt_payload, SHM_TYPE_OR_NONE, GRACEFUL_FINISH_REQUIRED >::async_connect(), and ipc::session::shm::arena_lend::jemalloc::Shm_session::Shm_session().
|
staticconstexpr |
The period with which each session-internal channel – notably the session master channel; also the internal channel used by an arena-lending SHM-provider (as of this writing SHM-jemalloc) – sends low-level keep-alive pings to the opposing peer.
See transport::Channel::auto_ping().
The opposing side uses the same value; hence S_IDLE_TIMEOUT (which must comfortably exceed it) works consistently in both directions.
Definition at line 56 of file session_cfg.hpp.
Referenced by ipc::session::Server_session_impl< MQ_TYPE_OR_NONE, TRANSMIT_NATIVE_HANDLES, Mdt_payload, SHM_TYPE_OR_NONE, SHM_MAX_HNDL_SZ, GRACEFUL_FINISH_REQUIRED >::async_accept_log_in(), ipc::session::Client_session_impl< MQ_TYPE_OR_NONE, TRANSMIT_NATIVE_HANDLES, Mdt_payload, SHM_TYPE_OR_NONE, GRACEFUL_FINISH_REQUIRED >::async_connect(), and ipc::session::shm::arena_lend::jemalloc::Shm_session::Shm_session().