summaryrefslogtreecommitdiffstats
path: root/libnetdata/circular_buffer/circular_buffer.c
diff options
context:
space:
mode:
Diffstat (limited to 'libnetdata/circular_buffer/circular_buffer.c')
-rw-r--r--libnetdata/circular_buffer/circular_buffer.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/libnetdata/circular_buffer/circular_buffer.c b/libnetdata/circular_buffer/circular_buffer.c
index b2bded17..7ffe6b8b 100644
--- a/libnetdata/circular_buffer/circular_buffer.c
+++ b/libnetdata/circular_buffer/circular_buffer.c
@@ -16,7 +16,10 @@ struct circular_buffer *cbuffer_new(size_t initial, size_t max, size_t *statisti
}
void cbuffer_free(struct circular_buffer *buf) {
- if(buf && buf->statistics)
+ if (unlikely(!buf))
+ return;
+
+ if(buf->statistics)
__atomic_sub_fetch(buf->statistics, sizeof(struct circular_buffer) + buf->size, __ATOMIC_RELAXED);
freez(buf->data);