MINOR: debug: make mark_tainted() return the previous value
authorWilly Tarreau <w@1wt.eu>
Sat, 19 Oct 2024 13:12:47 +0000 (15:12 +0200)
committerWilly Tarreau <w@1wt.eu>
Sat, 19 Oct 2024 13:54:53 +0000 (15:54 +0200)
Since mark_tainted() uses atomic ops to update the tainted status, let's
make it return the prior value, which will allow the caller to detect
if it's the first one to set it or not.

(cherry picked from commit 8e048603d1bba0721433a5ae0480fbf1ab6f4897)
Signed-off-by: Willy Tarreau <w@1wt.eu>

include/haproxy/bug.h

index b89ed22..a45d970 100644 (file)
@@ -320,9 +320,9 @@ extern unsigned int tainted;
 
 void complain(int *counter, const char *msg, int taint);
 
-static inline void mark_tainted(const enum tainted_flags flag)
+static inline unsigned int mark_tainted(const enum tainted_flags flag)
 {
-       HA_ATOMIC_OR(&tainted, flag);
+       return HA_ATOMIC_FETCH_OR(&tainted, flag);
 }
 
 static inline unsigned int get_tainted()