diff --git a/daemon/homer.c b/daemon/homer.c index a4365ec22..9f9419b54 100644 --- a/daemon/homer.c +++ b/daemon/homer.c @@ -12,6 +12,7 @@ #include "log.h" #include "helpers.h" #include "str.h" +#include "types.h" @@ -21,6 +22,8 @@ +TYPED_GQUEUE(gstring, GString) + struct homer_sender { mutex_t lock; @@ -30,7 +33,7 @@ struct homer_sender { socket_t socket; time_t retry; - GQueue send_queue; + gstring_q send_queue; GString *partial; int (*state)(struct homer_sender *); @@ -120,7 +123,7 @@ static int __established(struct homer_sender *hs) { } // unqueue as much as we can - while ((gs = g_queue_pop_head(&hs->send_queue))) { + while ((gs = t_queue_pop_head(&hs->send_queue))) { ilog(LOG_DEBUG, "dequeue send queue to Homer"); ret = __attempt_send(hs, gs); if (ret == 0) // everything sent OK @@ -129,7 +132,7 @@ static int __established(struct homer_sender *hs) { hs->partial = gs; return 0; } - g_queue_push_head(&hs->send_queue, gs); + t_queue_push_head(&hs->send_queue, gs); if (ret == 1) // write error return -1; // ret == 2 -> blocked @@ -222,7 +225,7 @@ int homer_send(GString *s, const str *id, const endpoint_t *src, mutex_lock(&main_homer_sender->lock); if (main_homer_sender->send_queue.length < SEND_QUEUE_LIMIT) { - g_queue_push_tail(&main_homer_sender->send_queue, s); + t_queue_push_tail(&main_homer_sender->send_queue, s); s = NULL; } else