25 #define M0_TRACE_SUBSYSTEM M0_TRACE_SUBSYS_RPC 61 pool_item = rpc_conn_pool_items_tlist_head(&
pool.cp_items);
63 rpc_conn_pool_items_tlist_tail(&
pool.cp_items));
75 pool_item = rpc_conn_pool_items_tlist_head(&
pool.cp_items);
77 rpc_conn_pool_items_tlist_tail(&
pool.cp_items));
83 pool_item = rpc_conn_pool_items_tlist_head(&
pool.cp_items);
85 rpc_conn_pool_items_tlist_tail(&
pool.cp_items));
91 pool_item = rpc_conn_pool_items_tlist_head(&
pool.cp_items);
93 rpc_conn_pool_items_tlist_tail(&
pool.cp_items));
140 pool_item = rpc_conn_pool_items_tlist_head(&
pool.cp_items);
142 rpc_conn_pool_items_tlist_tail(&
pool.cp_items));
190 #undef M0_TRACE_SUBSYSTEM
M0_INTERNAL void m0_mutex_unlock(struct m0_mutex *mutex)
M0_INTERNAL void m0_rpc_conn_pool_fini(struct m0_rpc_conn_pool *pool)
M0_INTERNAL void m0_clink_init(struct m0_clink *link, m0_chan_cb_t cb)
const m0_time_t M0_TIME_NEVER
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)
static struct m0_rpc_client_ctx cctx
#define container_of(ptr, type, member)
M0_INTERNAL void m0_mutex_lock(struct m0_mutex *mutex)
M0_INTERNAL void m0_cond_init(struct m0_cond *cond, struct m0_mutex *mutex)
M0_INTERNAL void m0_cond_fini(struct m0_cond *cond)
M0_INTERNAL void m0_cond_signal(struct m0_cond *cond)
static void stop_rpc_client_and_server(void)
M0_INTERNAL struct m0_chan * m0_rpc_conn_pool_session_chan(struct m0_rpc_session *session)
M0_INTERNAL void m0_mutex_init(struct m0_mutex *mutex)
static struct m0_clink clink[RDWR_REQUEST_MAX]
M0_INTERNAL bool m0_rpc_conn_pool_session_established(struct m0_rpc_session *session)
static struct m0_pool pool
static struct m0_mutex cond_mutex
void m0_clink_add_lock(struct m0_chan *chan, struct m0_clink *link)
struct m0_ut_suite rpc_conn_pool_ut
M0_INTERNAL void m0_cond_wait(struct m0_cond *cond)
M0_INTERNAL int m0_rpc_conn_pool_get_async(struct m0_rpc_conn_pool *pool, const char *remote_ep, struct m0_rpc_session **session)
#define M0_ALLOC_PTR(ptr)
static struct m0_cond connection_pending_cond
M0_INTERNAL void m0_mutex_fini(struct m0_mutex *mutex)
static void rpc_conn_pool(void)
static void rpc_conn_pool_async(void)
static bool pending_cp_clink_cb(struct m0_clink *clink)
struct m0_rpc_machine rcx_rpc_machine
struct m0_rpc_session * session
#define SERVER_ENDPOINT_ADDR
M0_INTERNAL int m0_rpc_conn_pool_get_sync(struct m0_rpc_conn_pool *pool, const char *remote_ep, struct m0_rpc_session **session)
static void start_rpc_client_and_server(void)
M0_INTERNAL void m0_rpc_conn_pool_put(struct m0_rpc_conn_pool *pool, struct m0_rpc_session *session)