diff --git a/lib/libwebsockets.h b/lib/libwebsockets.h index bc44961f..87b34d08 100644 --- a/lib/libwebsockets.h +++ b/lib/libwebsockets.h @@ -5231,6 +5231,9 @@ lws_ring_next_linear_insert_range(struct lws_ring *ring, void **start, */ LWS_VISIBLE LWS_EXTERN void lws_ring_bump_head(struct lws_ring *ring, size_t bytes); + +LWS_VISIBLE LWS_EXTERN void +lws_ring_dump(struct lws_ring *ring, uint32_t *tail); ///@} /** \defgroup sha SHA and B64 helpers diff --git a/lib/misc/lws-ring.c b/lib/misc/lws-ring.c index c2f86ee5..60fc7cbe 100644 --- a/lib/misc/lws-ring.c +++ b/lib/misc/lws-ring.c @@ -278,3 +278,15 @@ lws_ring_get_oldest_tail(struct lws_ring *ring) { return ring->oldest_tail; } + +LWS_VISIBLE LWS_EXTERN void +lws_ring_dump(struct lws_ring *ring, uint32_t *tail) +{ + if (tail == NULL) + tail = &ring->oldest_tail; + lwsl_notice("ring %p: buflen %u, element_len %u, head %u, oldest_tail %u\n" + " free_elements: %u; for tail %u, waiting elements: %u\n", + ring, ring->buflen, ring->element_len, ring->head, + ring->oldest_tail, (int)lws_ring_get_count_free_elements(ring), + *tail, (int)lws_ring_get_count_waiting_elements(ring, tail)); +}