138 (*svc)->rs_type =
stype;
151 .rst_typecode = M0_CST_DS1
173 grp = &
fom->tw_fom.fo_loc->fl_group;
304 .rhia_dtm = (
void *)1,
305 .rhia_mdstore = (
void *)1,
static void delayed_unreachable(void)
static struct m0_reqh twreqh
M0_INTERNAL void m0_fom_wakeup(struct m0_fom *fom)
M0_INTERNAL int m0_reqh_service_start(struct m0_reqh_service *service)
M0_INTERNAL void m0_reqh_services_terminate(struct m0_reqh *reqh)
M0_INTERNAL void m0_reqh_service_stop(struct m0_reqh_service *service)
M0_INTERNAL bool m0_semaphore_trydown(struct m0_semaphore *semaphore)
static void reqh_start(void)
#define M0_REQH_INIT(reqh,...)
const m0_time_t M0_TIME_NEVER
static void wakeup(struct m0_sm_group *grp, struct m0_sm_ast *ast)
M0_INTERNAL bool m0_chan_has_waiters(struct m0_chan *chan)
static struct m0_sm_group * grp
M0_INTERNAL void m0_reqh_service_prepare_to_stop(struct m0_reqh_service *service)
M0_INTERNAL void m0_sm_ast_post(struct m0_sm_group *grp, struct m0_sm_ast *ast)
struct m0_ut_suite fom_timedwait_ut
int(* fto_create)(struct m0_fop *fop, struct m0_fom **out, struct m0_reqh *reqh)
static void delayed_success(void)
static int tw_fom_tick(struct m0_fom *fom)
static void immediate_success(void)
M0_INTERNAL void m0_reqh_fini(struct m0_reqh *reqh)
static void delayed_timeout(void)
static struct m0_reqh_service_type ut_tw_service_type
struct m0_semaphore tw_sem_init
static const struct m0_reqh_service_type_ops twsvc_type_ops
static struct m0_sm_ast ast[NR]
void m0_fom_init(struct m0_fom *fom, const struct m0_fom_type *fom_type, const struct m0_fom_ops *ops, struct m0_fop *fop, struct m0_fop *reply, struct m0_reqh *reqh)
static size_t tw_fom_home_locality(const struct m0_fom *fom)
static void tw_fom_fini(struct m0_fom *fom)
#define M0_AMB(obj, ptr, field)
static const struct socktype stype[]
static const struct m0_reqh_service_ops twsvc_ops
void m0_fom_fini(struct m0_fom *fom)
struct m0_semaphore tw_sem_timeout
m0_time_t m0_time_now(void)
M0_INTERNAL void m0_reqh_service_fini(struct m0_reqh_service *service)
int tw_test_suite_init(void)
M0_INTERNAL void m0_fom_type_init(struct m0_fom_type *type, uint64_t id, const struct m0_fom_type_ops *ops, const struct m0_reqh_service_type *svc_type, const struct m0_sm_conf *sm)
static void reqh_stop(void)
M0_INTERNAL int m0_semaphore_init(struct m0_semaphore *semaphore, unsigned value)
static void tw_fom_start(struct m0_fom *fom)
static void twsvc_fini(struct m0_reqh_service *svc)
M0_INTERNAL int m0_reqh_service_allocate(struct m0_reqh_service **out, const struct m0_reqh_service_type *stype, struct m0_reqh_context *rctx)
static struct m0_reqh_service * twsvc
static void immediate_timeout(void)
M0_INTERNAL void m0_reqh_service_init(struct m0_reqh_service *service, struct m0_reqh *reqh, const struct m0_fid *fid)
static struct m0_fom_type tw_fomt
struct m0_sm_ast tw_wakeup
int m0_reqh_service_async_start_simple(struct m0_reqh_service_start_async_ctx *asc)
static int twsvc_type_allocate(struct m0_reqh_service **svc, const struct m0_reqh_service_type *stype)
M0_INTERNAL int m0_fom_timedwait(struct m0_fom *fom, uint64_t phases, m0_time_t deadline)
static void fom_reschedule(struct tw_fom *fom)
static struct m0_sm_conf tw_sm_conf
M0_INTERNAL void m0_reqh_start(struct m0_reqh *reqh)
int(* rsto_service_allocate)(struct m0_reqh_service **service, const struct m0_reqh_service_type *stype)
static int twsvc_start(struct m0_reqh_service *svc)
static struct m0_sm_state_descr tw_fom_phases[]
static void reqh_fini(void)
static void twsvc_stop(struct m0_reqh_service *svc)
#define M0_ALLOC_PTR(ptr)
M0_INTERNAL void m0_semaphore_fini(struct m0_semaphore *semaphore)
static void tw_fini(struct m0_fom *fom0)
struct m0_semaphore tw_sem_fini
static struct m0_net_test_service svc
static void reqh_init(void)
struct m0_fom_timeout tw_timeout
M0_INTERNAL void m0_reqh_idle_wait_for(struct m0_reqh *reqh, struct m0_reqh_service *service)
M0_INTERNAL void m0_fom_queue(struct m0_fom *fom)
void(* fo_fini)(struct m0_fom *fom)
static const struct m0_fom_ops tw_fom_ops
static void tw_fom_create(struct m0_fom **out, struct m0_reqh *reqh, enum tw_test test)
M0_INTERNAL void m0_semaphore_down(struct m0_semaphore *semaphore)
const struct m0_fom_type_ops tw_fom_type_ops
void m0_fom_phase_set(struct m0_fom *fom, int phase)
M0_INTERNAL void m0_semaphore_up(struct m0_semaphore *semaphore)
static void tw_fom_destroy(struct tw_fom *fom)
static void immediate_unreachable(void)
static struct m0_fom * tw_init(enum tw_test test)
static void tw_fom_timeout_signal(struct m0_fom *fom)
int(* rso_start_async)(struct m0_reqh_service_start_async_ctx *asc)
struct m0_fid g_process_fid
#define M0_IMPOSSIBLE(fmt,...)