95 debug(
"",0,
"%s: Msg %p retry %ld", __func__,
96 i->
msg, i->
msg->sms.resend_try);
98 warning(0,
"%s: Msg %p exceeded %d retries, discard!", __func__,
143 debug(
"",0,
"%s: Msg %p retry %ld", __func__,
144 msg,
msg->sms.resend_try);
146 warning(0,
"%s: Msg %p exceeded %d retries, discard!", __func__,
179 msg_a->sms.resend_try = msg_b->sms.resend_try = 0;
182 i_timer->
msg = msg_a;
186 debug(
"",0,
"%s: Msg %p retry %ld", __func__, msg_a, msg_a->sms.resend_try);
189 i_retry->
msg = msg_b;
193 debug(
"",0,
"%s: Msg %p retry %ld", __func__, msg_b, msg_b->sms.resend_try);
195 debug(
"",0,
"%s: enter main loop", __func__);
199 debug(
"",0,
"%s: exit main loop", __func__);
void gw_timerset_destroy(Timerset *set)
void gw_timer_elapsed_destroy_cb(Timer *timer)
void gwlist_produce(List *list, void *item)
void gwthread_join(long thread)
long gw_timerset_count(Timerset *set)
Timer * gw_timer_create(Timerset *set, List *outputlist, void(*callback)(void *))
Timerset * gw_timerset_create(void)
static void timer_retry_cb(void *arg)
void gwlist_remove_producer(List *list)
void msg_destroy(Msg *msg)
void warning(int err, const char *fmt,...)
static void retry_consumer_thread(void *arg)
#define gwthread_create(func, arg)
struct TimerItem TimerItem
void gwthread_sleep(double seconds)
static void timer_consumer_thread(void *arg)
void gw_timer_elapsed_destroy(Timer *timer)
void * gwlist_consume(List *list)
void debug(const char *place, int err, const char *fmt,...)
void gw_timer_elapsed_start(Timer *timer, int interval, void *data)
void gwlib_shutdown(void)
static Timerset * timerset
void gwlist_add_producer(List *list)
static XMLRPCDocument * msg
void gwlist_destroy(List *list, gwlist_item_destructor_t *destructor)