]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Ignore TSAN errors when accessing 'ns_client_requests'
authorMark Andrews <marka@isc.org>
Thu, 15 Oct 2020 07:07:20 +0000 (18:07 +1100)
committerMark Andrews <marka@isc.org>
Thu, 10 Dec 2020 06:31:19 +0000 (06:31 +0000)
bin/named/client.c
bin/named/include/named/client.h

index 38e056fd7715a23efa2c23b2265befd948fdd3c5..339dd07f9afb5a00a37abc7d17d0b5f5129d916e 100644 (file)
@@ -247,6 +247,18 @@ _Atomic(unsigned int) ns_client_requests;
 unsigned int ns_client_requests;
 #endif
 
+#ifdef NS_CLIENT_NEED_NCR_INC
+ISC_NO_SANITIZE_THREAD void
+ns_client_ncr_inc(void) {
+       ns_client_requests++;
+}
+
+ISC_NO_SANITIZE_THREAD unsigned int
+ns_client_ncr_load(void) {
+       return (ns_client_requests);
+}
+#endif
+
 static void client_read(ns_client_t *client);
 static void client_accept(ns_client_t *client);
 static void client_udprecv(ns_client_t *client);
index 09839bc06d4ae0205788327f8ec85ce89a814e3c..78c1a43adebe345a95c38d4b16571f8fb6a84857 100644 (file)
@@ -229,8 +229,11 @@ extern _Atomic(unsigned int) ns_client_requests;
 #define ncr_load(x) isc_atomic_xadd((int *)&(x), 0);
 extern unsigned int ns_client_requests;
 #else
-#define ncr_inc(x) ((x)++)
-#define ncr_load(x) (x)
+void ns_client_ncr_inc(void);
+unsigned int ns_client_ncr_load(void);
+#define NS_CLIENT_NEED_NCR_INC
+#define ncr_inc(x) ns_client_ncr_inc()
+#define ncr_load(x) ns_client_ncr_load()
 extern unsigned int ns_client_requests;
 #endif