]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
MINOR: buffer: add br_single() to check if a buffer ring has more than one buf
authorWilly Tarreau <w@1wt.eu>
Thu, 16 Mar 2023 16:30:04 +0000 (17:30 +0100)
committerWilly Tarreau <w@1wt.eu>
Thu, 16 Mar 2023 17:45:46 +0000 (18:45 +0100)
It's cheaper and cleaner than using br_count()==1 given that it just compares
two indexes, and that a ring having a single buffer is in a special case where
it is between empty and used up-to-1. In other words it's not congested.

include/haproxy/buf.h

index 1136a6a9bbc44bf52524b6e1f1fc573cad6bf339..e98161ebee48938c5b3cc60a1c2437be89b36f3c 100644 (file)
@@ -1027,6 +1027,14 @@ static inline unsigned int br_count(const struct buffer *r)
                return r->data + r->size - r->head;
 }
 
+/* Returns true if a single buffer is assigned */
+static inline unsigned int br_single(const struct buffer *r)
+{
+       BUG_ON_HOT(r->area != BUF_RING.area);
+
+       return r->data == r->head;
+}
+
 /* Returns the index of the ring's head buffer */
 static inline unsigned int br_head_idx(const struct buffer *r)
 {