Lines Matching defs:rd
43 static void do_reinit(pa_mainloop_api *mainloop, pa_restart_data *rd);
46 pa_restart_data *rd = userdata;
49 if (rd->time_event) {
50 mainloop->time_free(rd->time_event);
51 rd->time_event = NULL;
55 ret = rd->do_init(rd->module);
60 do_reinit(mainloop, rd);
64 pa_restart_data *rd = userdata;
66 pa_assert(rd->defer_event == e);
68 mainloop->defer_enable(rd->defer_event, 0);
69 mainloop->defer_free(rd->defer_event);
70 rd->defer_event = NULL;
72 do_reinit(mainloop, rd);
75 static void do_reinit(pa_mainloop_api *mainloop, pa_restart_data *rd) {
82 rd->do_done(rd->module);
86 pa_timeval_add(&tv, rd->restart_usec);
87 rd->time_event = mainloop->time_new(mainloop, &tv, call_init, rd);
91 pa_restart_data *rd;
100 rd = pa_xnew0(pa_restart_data, 1);
101 rd->do_init = do_init;
102 rd->do_done = do_done;
103 rd->restart_usec = restart_usec;
104 rd->module = m;
108 rd->defer_event = m->core->mainloop->defer_new(m->core->mainloop, defer_callback, rd);
109 m->core->mainloop->defer_enable(rd->defer_event, 1);
111 return rd;
114 void pa_restart_free(pa_restart_data *rd) {
116 pa_assert(rd);
118 if (rd->defer_event) {
119 rd->module->core->mainloop->defer_enable(rd->defer_event, 0);
120 rd->module->core->mainloop->defer_free(rd->defer_event);
123 if (rd->time_event) {
124 pa_log_info("Cancel reinit for %s", rd->module->name);
125 rd->module->core->mainloop->time_free(rd->time_event);
128 pa_xfree(rd);