Go to the source code of this file.
|
| M0_TL_DESCR_DEFINE (rpc_conn_pool_items, "rpc cpi list", M0_INTERNAL, struct m0_rpc_conn_pool_item, cpi_linkage, cpi_magic, M0_RPC_CONN_POOL_ITEMS_MAGIC, M0_RPC_CONN_POOL_ITEMS_HEAD_MAGIC) |
|
| M0_TL_DEFINE (rpc_conn_pool_items, M0_INTERNAL, struct m0_rpc_conn_pool_item) |
|
static struct m0_rpc_conn_pool_item * | find_item_by_ep (struct m0_rpc_conn_pool *pool, const char *remote_ep) |
|
static struct m0_rpc_conn_pool_item * | find_pool_item (struct m0_rpc_session *session) |
|
static bool | pool_item_clink_cb (struct m0_clink *link) |
|
static int | conn_pool_item_init (struct m0_rpc_conn_pool *pool, struct m0_rpc_conn_pool_item *item, const char *remote_ep) |
|
static void | conn_pool_item_fini (struct m0_rpc_conn_pool_item *item) |
|
static struct m0_rpc_conn_pool_item * | conn_pool_item_get (struct m0_rpc_conn_pool *pool, const char *remote_ep) |
|
M0_INTERNAL int | m0_rpc_conn_pool_get_sync (struct m0_rpc_conn_pool *pool, const char *remote_ep, struct m0_rpc_session **session) |
|
M0_INTERNAL int | m0_rpc_conn_pool_get_async (struct m0_rpc_conn_pool *pool, const char *remote_ep, struct m0_rpc_session **session) |
|
M0_INTERNAL void | m0_rpc_conn_pool_put (struct m0_rpc_conn_pool *pool, struct m0_rpc_session *session) |
|
M0_INTERNAL struct m0_chan * | m0_rpc_conn_pool_session_chan (struct m0_rpc_session *session) |
|
M0_INTERNAL bool | m0_rpc_conn_pool_session_established (struct m0_rpc_session *session) |
|
M0_INTERNAL int | m0_rpc_conn_pool_init (struct m0_rpc_conn_pool *pool, struct m0_rpc_machine *rpc_mach, m0_time_t conn_timeout, uint64_t max_rpcs_in_flight) |
|
M0_INTERNAL void | m0_rpc_conn_pool_fini (struct m0_rpc_conn_pool *pool) |
|
static void | pool_item_disconnected_ast (struct m0_sm_group *grp, struct m0_sm_ast *ast) |
|
static bool | pool_item_disconn_cb (struct m0_clink *link) |
|
static void | pool_item_disconn_ast (struct m0_sm_group *grp, struct m0_sm_ast *ast) |
|
M0_INTERNAL void | m0_rpc_conn_pool_destroy (struct m0_rpc_conn_pool *pool, struct m0_rpc_session *session) |
|
◆ M0_TRACE_SUBSYSTEM
#define M0_TRACE_SUBSYSTEM M0_TRACE_SUBSYS_RPC |
◆ conn_pool_item_fini()
◆ conn_pool_item_get()
◆ conn_pool_item_init()
◆ find_item_by_ep()
◆ find_pool_item()
◆ m0_rpc_conn_pool_destroy()
Destroy this rpc session from this pool.
First, the connection pool item will be identified by iterating the connection pool list and removed from the list. Then, the rpc link will be asynchronously disconnect. In the disconnection callback, we will destroy this rpc link.
Definition at line 450 of file conn_pool.c.
◆ m0_rpc_conn_pool_fini()
◆ m0_rpc_conn_pool_get_async()
- Todo:
- Potential race if connection is established before clink is added to session channel.
- Todo:
- Looks like rpc link connect could not be called twice, even in case first attempt fails (phase 2).
Definition at line 230 of file conn_pool.c.
◆ m0_rpc_conn_pool_get_sync()
◆ m0_rpc_conn_pool_init()
◆ m0_rpc_conn_pool_put()
◆ m0_rpc_conn_pool_session_chan()
◆ m0_rpc_conn_pool_session_established()
M0_INTERNAL bool m0_rpc_conn_pool_session_established |
( |
struct m0_rpc_session * |
session | ) |
|
- Todo:
- Unprotected access to ->sm_state in this function.
Definition at line 310 of file conn_pool.c.
◆ M0_TL_DEFINE()
◆ M0_TL_DESCR_DEFINE()
◆ pool_item_clink_cb()
static bool pool_item_clink_cb |
( |
struct m0_clink * |
link | ) |
|
|
static |
◆ pool_item_disconn_ast()
◆ pool_item_disconn_cb()
static bool pool_item_disconn_cb |
( |
struct m0_clink * |
link | ) |
|
|
static |
◆ pool_item_disconnected_ast()