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)