summaryrefslogtreecommitdiffstats
path: root/src/aclk/aclk_query_queue.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/aclk/aclk_query_queue.c (renamed from aclk/aclk_query_queue.c)18
1 files changed, 3 insertions, 15 deletions
diff --git a/aclk/aclk_query_queue.c b/src/aclk/aclk_query_queue.c
index 8ca21d456..3edadc002 100644
--- a/aclk/aclk_query_queue.c
+++ b/src/aclk/aclk_query_queue.c
@@ -10,11 +10,9 @@ static netdata_mutex_t aclk_query_queue_mutex = NETDATA_MUTEX_INITIALIZER;
static struct aclk_query_queue {
aclk_query_t head;
- aclk_query_t tail;
int block_push;
} aclk_query_queue = {
.head = NULL,
- .tail = NULL,
.block_push = 0
};
@@ -31,15 +29,7 @@ static inline int _aclk_queue_query(aclk_query_t query)
aclk_query_free(query);
return 1;
}
- if (!aclk_query_queue.head) {
- aclk_query_queue.head = query;
- aclk_query_queue.tail = query;
- ACLK_QUEUE_UNLOCK;
- return 0;
- }
- // TODO deduplication
- aclk_query_queue.tail->next = query;
- aclk_query_queue.tail = query;
+ DOUBLE_LINKED_LIST_APPEND_ITEM_UNSAFE(aclk_query_queue.head, query, prev, next);
ACLK_QUEUE_UNLOCK;
return 0;
@@ -77,9 +67,7 @@ aclk_query_t aclk_queue_pop(void)
return ret;
}
- aclk_query_queue.head = ret->next;
- if (unlikely(!aclk_query_queue.head))
- aclk_query_queue.tail = aclk_query_queue.head;
+ DOUBLE_LINKED_LIST_REMOVE_ITEM_UNSAFE(aclk_query_queue.head, ret, prev, next);
ACLK_QUEUE_UNLOCK;
ret->next = NULL;
@@ -92,7 +80,7 @@ void aclk_queue_flush(void)
while (query) {
aclk_query_free(query);
query = aclk_queue_pop();
- };
+ }
}
aclk_query_t aclk_query_new(aclk_query_type_t type)