33 if (!m0_net_tm_tlist_is_empty(&tm->
ntm_q[
i]))
56 NLXDBGP(tp, 2,
"%p: nlx_tm_timeout_buffers\n", tp);
151 next_buffer_timeout =
m0_time_add(now, buffer_timeout_tick);
153 NLXDBGP(tp, 1,
"%p: tm_worker_thread started\n", tp);
166 if (
timeout > next_buffer_timeout)
201 if (now >= next_buffer_timeout) {
204 buffer_timeout_tick);
210 bool must_stop =
false;
288 NLXDBG(tp,2,nlx_print_core_buffer_event(
"bev_to_net_bev: cbev", lcbev));
289 NLXDBG(tp,2,nlx_print_net_buffer_event(
"bev_to_net_bev: nbev:", nbev));
#define NLX_tm_timeout_buffers(tm, now)
M0_INTERNAL void m0_mutex_unlock(struct m0_mutex *mutex)
static int nlx_tm_timeout_buffers(struct m0_net_transfer_mc *tm, m0_time_t now)
#define NLX_ep_create(epp, tm, cepa)
M0_INTERNAL int m0_thread_confine(struct m0_thread *q, const struct m0_bitmap *processors)
struct m0_bitmap xtm_processors
#define NLXDBG(ptr, dbg, stmt)
enum m0_net_tm_state ntm_state
static m0_time_t nlx_tm_get_buffer_timeout_tick(const struct m0_net_transfer_mc *tm)
struct m0_net_domain * ntm_dom
M0_INTERNAL void m0_mutex_lock(struct m0_mutex *mutex)
struct m0_net_buffer * nbe_buffer
m0_time_t m0_time(uint64_t secs, long ns)
struct m0_net_end_point * nbe_ep
bool ntm_bev_auto_deliver
M0_INTERNAL void m0_chan_signal(struct m0_chan *chan)
M0_INTERNAL bool m0_net__buffer_event_invariant(const struct m0_net_buffer_event *ev)
struct nlx_core_ep_addr ctm_addr
enum m0_net_tm_state nte_next_state
static bool all_tm_queues_are_empty(struct m0_net_transfer_mc *tm)
static int nlx_xo_core_bev_to_net_bev(struct m0_net_transfer_mc *tm, struct nlx_core_buffer_event *lcbev, struct m0_net_buffer_event *nbev)
enum m0_net_queue_type nb_qtype
M0_INTERNAL void nlx_core_tm_set_debug(struct nlx_core_transfer_mc *lctm, unsigned dbg)
M0_INTERNAL bool m0_mutex_is_locked(const struct m0_mutex *mutex)
static void nlx_tm_ev_worker(struct m0_net_transfer_mc *tm)
m0_time_t m0_time_now(void)
nlx_core_opaque_ptr_t cbe_buffer_id
struct m0_chan * xtm_ev_chan
struct nlx_core_domain xd_core
M0_INTERNAL void nlx_core_tm_stop(struct nlx_core_domain *cd, struct nlx_core_transfer_mc *ctm)
uint32_t ntm_callback_counter
static void nlx_xo_bev_deliver_all(struct m0_net_transfer_mc *tm)
M0_INTERNAL void m0_net_tm_event_post(const struct m0_net_tm_event *ev)
static bool nlx_tm_invariant(const struct m0_net_transfer_mc *tm)
struct m0_cond xtm_ev_cond
m0_time_t m0_time_add(const m0_time_t t1, const m0_time_t t2)
static int nlx_ep_create(struct m0_net_end_point **epp, struct m0_net_transfer_mc *tm, const struct nlx_core_ep_addr *cepa)
struct nlx_core_ep_addr cbe_sender
struct m0_tl ntm_q[M0_NET_QT_NR]
M0_INTERNAL void m0_chan_signal_lock(struct m0_chan *chan)
struct m0_net_end_point * nte_ep
struct m0_thread xtm_ev_thread
M0_INTERNAL bool m0_net__buffer_invariant(const struct m0_net_buffer *buf)
static void nlx_xo_buf_del(struct m0_net_buffer *nb)
#define NLX_tm_get_buffer_timeout_tick(tm)
struct m0_net_end_point * ntm_ep
#define NLXDBGP(ptr, dbg, fmt,...)
m0_time_t m0_time_from_now(uint64_t secs, long ns)
M0_INTERNAL struct m0_thread * m0_thread_self(void)
#define NLX_core_buf_event_wait(lcdom, lctm, timeout)
M0_INTERNAL int nlx_core_buf_event_wait(struct nlx_core_domain *cd, struct nlx_core_transfer_mc *ctm, m0_time_t timeout)
M0_INTERNAL bool m0_cond_timedwait(struct m0_cond *cond, const m0_time_t abs_timeout)
enum m0_net_tm_ev_type nte_type
#define m0_tl_for(name, head, obj)
M0_INTERNAL int nlx_core_tm_start(struct nlx_core_domain *cd, struct m0_net_transfer_mc *tm, struct nlx_core_transfer_mc *ctm)
struct nlx_core_transfer_mc xtm_core