diff --git a/include/common/buffer.h b/include/common/buffer.h
index 2f5f882..cbefc6a 100644
--- a/include/common/buffer.h
+++ b/include/common/buffer.h
@@ -45,7 +45,7 @@
 
 extern struct pool_head *pool_head_buffer;
 extern struct mt_list buffer_wq;
-__decl_hathreads(extern HA_SPINLOCK_T buffer_wq_lock);
+__decl_thread(extern HA_SPINLOCK_T buffer_wq_lock);
 
 int init_buffer();
 void buffer_dump(FILE *o, struct buffer *b, int from, int to);
diff --git a/include/common/memory.h b/include/common/memory.h
index 3858ae4..d5b3191 100644
--- a/include/common/memory.h
+++ b/include/common/memory.h
@@ -87,7 +87,7 @@
 #ifdef CONFIG_HAP_LOCKLESS_POOLS
 	uintptr_t seq;
 #endif
-	__decl_hathreads(HA_SPINLOCK_T lock); /* the spin lock */
+	__decl_thread(HA_SPINLOCK_T lock); /* the spin lock */
 	unsigned int used;	/* how many chunks are currently in use */
 	unsigned int needed_avg;/* floating indicator between used and allocated */
 	unsigned int allocated;	/* how many chunks have been allocated */
diff --git a/include/haproxy/thread-t.h b/include/haproxy/thread-t.h
index d933244..d54ec84 100644
--- a/include/haproxy/thread-t.h
+++ b/include/haproxy/thread-t.h
@@ -44,7 +44,7 @@
 #define MAX_THREADS_MASK 1
 
 /* These macros allow to make some struct fields or local variables optional */
-#define __decl_hathreads(decl)
+#define __decl_thread(decl)
 #define __decl_spinlock(lock)
 #define __decl_aligned_spinlock(lock)
 #define __decl_rwlock(lock)
@@ -62,7 +62,7 @@
 
 #define MAX_THREADS_MASK (~0UL >> (LONGBITS - MAX_THREADS))
 
-#define __decl_hathreads(decl) decl
+#define __decl_thread(decl) decl
 
 /* declare a self-initializing spinlock */
 #define __decl_spinlock(lock)                               \
@@ -97,7 +97,7 @@
  * the pthread identifier which does not exist).
  */
 struct thread_info {
-	__decl_hathreads(pthread_t pthread);
+	__decl_thread(pthread_t pthread);
 	clockid_t clock_id;
 	timer_t wd_timer;          /* valid timer or TIMER_INVALID if not set */
 	uint64_t prev_cpu_time;    /* previous per thread CPU time */
diff --git a/include/proto/connection.h b/include/proto/connection.h
index 2efd629..7ffe1fd 100644
--- a/include/proto/connection.h
+++ b/include/proto/connection.h
@@ -73,7 +73,7 @@
 /* If we delayed the mux creation because we were waiting for the handshake, do it now */
 int conn_create_mux(struct connection *conn);
 
-__decl_hathreads(extern HA_SPINLOCK_T toremove_lock[MAX_THREADS]);
+__decl_thread(extern HA_SPINLOCK_T toremove_lock[MAX_THREADS]);
 
 /* returns true is the transport layer is ready */
 static inline int conn_xprt_ready(const struct connection *conn)
diff --git a/include/proto/fd.h b/include/proto/fd.h
index a3c476d..9426e14 100644
--- a/include/proto/fd.h
+++ b/include/proto/fd.h
@@ -67,7 +67,7 @@
 int fd_takeover(int fd, void *expected_owner);
 
 #ifndef HA_HAVE_CAS_DW
-__decl_hathreads(extern HA_RWLOCK_T fd_mig_lock);
+__decl_thread(extern HA_RWLOCK_T fd_mig_lock);
 #endif
 
 ssize_t fd_write_frag_line(int fd, size_t maxlen, const struct ist pfx[], size_t npfx, const struct ist msg[], size_t nmsg, int nl);
diff --git a/include/proto/protocol.h b/include/proto/protocol.h
index ee9e7e0..36162a0 100644
--- a/include/proto/protocol.h
+++ b/include/proto/protocol.h
@@ -27,7 +27,7 @@
 #include <types/protocol.h>
 
 extern struct protocol *__protocol_by_family[AF_CUST_MAX];
-__decl_hathreads(extern HA_SPINLOCK_T proto_lock);
+__decl_thread(extern HA_SPINLOCK_T proto_lock);
 
 /* Registers the protocol <proto> */
 void protocol_register(struct protocol *proto);
diff --git a/include/proto/server.h b/include/proto/server.h
index 4c4b4bf..e184310 100644
--- a/include/proto/server.h
+++ b/include/proto/server.h
@@ -37,7 +37,7 @@
 #include <proto/freq_ctr.h>
 
 
-__decl_hathreads(extern HA_SPINLOCK_T idle_conn_srv_lock);
+__decl_thread(extern HA_SPINLOCK_T idle_conn_srv_lock);
 extern struct eb_root idle_conn_srv;
 extern struct task *idle_conn_task;
 extern struct task *idle_conn_cleanup[MAX_THREADS];
diff --git a/include/proto/signal.h b/include/proto/signal.h
index 558fbc2..b2fd2c8 100644
--- a/include/proto/signal.h
+++ b/include/proto/signal.h
@@ -21,7 +21,7 @@
 extern int signal_queue_len;
 extern struct signal_descriptor signal_state[];
 
-__decl_hathreads(extern HA_SPINLOCK_T signals_lock);
+__decl_thread(extern HA_SPINLOCK_T signals_lock);
 
 void signal_handler(int sig);
 void __signal_process_queue();
diff --git a/include/proto/ssl_sock.h b/include/proto/ssl_sock.h
index 6966512..2cbd60b 100644
--- a/include/proto/ssl_sock.h
+++ b/include/proto/ssl_sock.h
@@ -41,7 +41,7 @@
 extern struct global_ssl global_ssl;
 extern struct ssl_bind_kw ssl_bind_kws[];
 extern struct methodVersions methodVersions[];
-__decl_hathreads(extern HA_SPINLOCK_T ckch_lock);
+__decl_thread(extern HA_SPINLOCK_T ckch_lock);
 extern struct pool_head *pool_head_ssl_capture;
 extern unsigned int openssl_engines_initialized;
 extern int nb_engines;
diff --git a/include/proto/task.h b/include/proto/task.h
index 668cee3..05b048b 100644
--- a/include/proto/task.h
+++ b/include/proto/task.h
@@ -102,8 +102,8 @@
 
 extern struct task_per_thread task_per_thread[MAX_THREADS];
 
-__decl_hathreads(extern HA_SPINLOCK_T rq_lock);  /* spin lock related to run queue */
-__decl_hathreads(extern HA_RWLOCK_T wq_lock);    /* RW lock related to the wait queue */
+__decl_thread(extern HA_SPINLOCK_T rq_lock);  /* spin lock related to run queue */
+__decl_thread(extern HA_RWLOCK_T wq_lock);    /* RW lock related to the wait queue */
 
 static inline struct task *task_unlink_wq(struct task *t);
 static inline void task_queue(struct task *task);
diff --git a/include/types/backend.h b/include/types/backend.h
index 6798058..1e2b9df 100644
--- a/include/types/backend.h
+++ b/include/types/backend.h
@@ -158,7 +158,7 @@
 	int   arg_opt2;			/* extra option 2 for the LB algo (algo-specific) */
 	int   arg_opt3;			/* extra option 3 for the LB algo (algo-specific) */
 	struct server *fbck;		/* first backup server when !PR_O_USE_ALL_BK, or NULL */
-	__decl_hathreads(HA_SPINLOCK_T lock);
+	__decl_thread(HA_SPINLOCK_T lock);
 
 	/* Call backs for some actions. Any of them may be NULL (thus should be ignored). */
 	void (*update_server_eweight)(struct server *);  /* to be called after eweight change */
diff --git a/include/types/dict.h b/include/types/dict.h
index 9807816..def6355 100644
--- a/include/types/dict.h
+++ b/include/types/dict.h
@@ -13,7 +13,7 @@
 struct dict {
 	const char *name;
 	struct eb_root values;
-	__decl_hathreads(HA_RWLOCK_T rwlock);
+	__decl_thread(HA_RWLOCK_T rwlock);
 };
 
 #endif /* _TYPES_DICT_H */
diff --git a/include/types/dns.h b/include/types/dns.h
index 0a8bf72..f504f5f 100644
--- a/include/types/dns.h
+++ b/include/types/dns.h
@@ -197,7 +197,7 @@
 	struct eb_root query_ids;           /* tree to quickly lookup/retrieve query ids currently in use
                                              * used by each nameserver, but stored in resolvers since there must
                                              * be a unique relation between an eb_root and an eb_node (resolution) */
-	__decl_hathreads(HA_SPINLOCK_T lock);
+	__decl_thread(HA_SPINLOCK_T lock);
 	struct list list;                   /* resolvers list */
 };
 
diff --git a/include/types/listener.h b/include/types/listener.h
index 50e208e..fddabb4 100644
--- a/include/types/listener.h
+++ b/include/types/listener.h
@@ -156,7 +156,7 @@
 	struct ssl_bind_conf *default_ssl_conf; /* custom SSL conf of default_ctx */
 	int strict_sni;            /* refuse negotiation if sni doesn't match a certificate */
 	int ssl_options;           /* ssl options */
-	__decl_hathreads(HA_RWLOCK_T sni_lock); /* lock the SNI trees during add/del operations */
+	__decl_thread(HA_RWLOCK_T sni_lock); /* lock the SNI trees during add/del operations */
 	struct eb_root sni_ctx;    /* sni_ctx tree of all known certs full-names sorted by name */
 	struct eb_root sni_w_ctx;  /* sni_ctx tree of all known certs wildcards sorted by name */
 	struct tls_keys_ref *keys_ref; /* TLS ticket keys reference */
@@ -217,7 +217,7 @@
 	char *interface;		/* interface name or NULL */
 	char *name;			/* listener's name */
 
-	__decl_hathreads(HA_SPINLOCK_T lock);
+	__decl_thread(HA_SPINLOCK_T lock);
 
 	const struct netns_entry *netns; /* network namespace of the listener*/
 
diff --git a/include/types/log.h b/include/types/log.h
index ae7ce0b..cfafb91 100644
--- a/include/types/log.h
+++ b/include/types/log.h
@@ -220,7 +220,7 @@
 	int minlvl;
 	int maxlen;
 	struct logsrv *ref;
-	__decl_hathreads(HA_SPINLOCK_T lock);
+	__decl_thread(HA_SPINLOCK_T lock);
 };
 
 #endif /* _TYPES_LOG_H */
diff --git a/include/types/pattern.h b/include/types/pattern.h
index 1a3e076..aa3ab24 100644
--- a/include/types/pattern.h
+++ b/include/types/pattern.h
@@ -106,7 +106,7 @@
 	char *display; /* String displayed to identify the pattern origin. */
 	struct list head; /* The head of the list of struct pat_ref_elt. */
 	struct list pat; /* The head of the list of struct pattern_expr. */
-	__decl_hathreads(HA_SPINLOCK_T lock); /* Lock used to protect pat ref elements */
+	__decl_thread(HA_SPINLOCK_T lock); /* Lock used to protect pat ref elements */
 };
 
 /* This is a part of struct pat_ref. Each entry contain one
@@ -191,7 +191,7 @@
 	struct eb_root pattern_tree;  /* may be used for lookup in large datasets */
 	struct eb_root pattern_tree_2;  /* may be used for different types */
 	int mflags;                     /* flags relative to the parsing or matching method. */
-	__decl_hathreads(HA_RWLOCK_T lock);               /* lock used to protect patterns */
+	__decl_thread(HA_RWLOCK_T lock);               /* lock used to protect patterns */
 };
 
 /* This is a list of expression. A struct pattern_expr can be used by
diff --git a/include/types/peers.h b/include/types/peers.h
index b3e1e44..4bd0680 100644
--- a/include/types/peers.h
+++ b/include/types/peers.h
@@ -76,7 +76,7 @@
 	struct shared_table *tables;
 	struct server *srv;
 	struct dcache *dcache;        /* dictionary cache */
-	__decl_hathreads(HA_SPINLOCK_T lock); /* lock used to handle this peer section */
+	__decl_thread(HA_SPINLOCK_T lock); /* lock used to handle this peer section */
 	struct peer *next;            /* next peer in the list */
 };
 
diff --git a/include/types/proxy.h b/include/types/proxy.h
index aa1ad35..ca642e2 100644
--- a/include/types/proxy.h
+++ b/include/types/proxy.h
@@ -271,7 +271,7 @@
 					 * code even though they are not checks. This structure
 					 * is as a parameter to the check code.
 					 * Each check corresponds to a mailer */
-	__decl_hathreads(HA_SPINLOCK_T lock);
+	__decl_thread(HA_SPINLOCK_T lock);
 };
 
 struct proxy {
@@ -466,7 +466,7 @@
 						 * name is used
 						 */
 	struct list filter_configs;		/* list of the filters that are declared on this proxy */
-	__decl_hathreads(HA_SPINLOCK_T lock);   /* may be taken under the server's lock */
+	__decl_thread(HA_SPINLOCK_T lock);   /* may be taken under the server's lock */
 };
 
 struct switching_rule {
diff --git a/include/types/ring.h b/include/types/ring.h
index f508444..b512b07 100644
--- a/include/types/ring.h
+++ b/include/types/ring.h
@@ -96,7 +96,7 @@
 	struct buffer buf;   // storage area
 	size_t ofs;          // absolute offset in history of the buffer's head
 	struct list waiters; // list of waiters, for now, CLI "show event"
-	__decl_hathreads(HA_RWLOCK_T lock);
+	__decl_thread(HA_RWLOCK_T lock);
 	int readers_count;
 };
 
diff --git a/include/types/server.h b/include/types/server.h
index 0bc5319..e4afff4 100644
--- a/include/types/server.h
+++ b/include/types/server.h
@@ -331,7 +331,7 @@
 	} ssl_ctx;
 #endif
 	struct dns_srvrq *srvrq;		/* Pointer representing the DNS SRV requeest, if any */
-	__decl_hathreads(HA_SPINLOCK_T lock);   /* may enclose the proxy's lock, must not be taken under */
+	__decl_thread(HA_SPINLOCK_T lock);   /* may enclose the proxy's lock, must not be taken under */
 	struct {
 		const char *file;		/* file where the section appears */
 		struct eb32_node id;		/* place in the tree of used IDs */
diff --git a/include/types/sink.h b/include/types/sink.h
index b10cb89..3feb05d 100644
--- a/include/types/sink.h
+++ b/include/types/sink.h
@@ -52,7 +52,7 @@
 	struct server *srv;    // used server
 	struct appctx *appctx; // appctx of current session
 	size_t ofs;            // ring buffer reader offset
-	__decl_hathreads(HA_SPINLOCK_T lock); // lock to protect current struct
+	__decl_thread(HA_SPINLOCK_T lock); // lock to protect current struct
 	struct sink_forward_target *next;
 };
 
@@ -69,7 +69,7 @@
 	struct task *forward_task; // task to handle forward targets conns
 	struct sig_handler *forward_sighandler; /* signal handler */
 	struct {
-		__decl_hathreads(HA_RWLOCK_T lock); // shared/excl for dropped
+		__decl_thread(HA_RWLOCK_T lock); // shared/excl for dropped
 		struct ring *ring;    // used by ring buffer and STRM sender
 		unsigned int dropped; // dropped events since last one.
 		int fd;               // fd num for FD type sink
diff --git a/include/types/spoe.h b/include/types/spoe.h
index 562e9f2..aa3d5d1 100644
--- a/include/types/spoe.h
+++ b/include/types/spoe.h
@@ -275,7 +275,7 @@
 		struct list     applets;        /* all SPOE applets for this agent */
 		struct list     sending_queue;  /* Queue of streams waiting to send data */
 		struct list     waiting_queue;  /* Queue of streams waiting for a ack, in async mode */
-		__decl_hathreads(HA_SPINLOCK_T lock);
+		__decl_thread(HA_SPINLOCK_T lock);
 	} *rt;
 
 	struct {
diff --git a/include/types/ssl_sock.h b/include/types/ssl_sock.h
index c8a0681..27633ec 100644
--- a/include/types/ssl_sock.h
+++ b/include/types/ssl_sock.h
@@ -161,7 +161,7 @@
 	union tls_sess_key *tlskeys;
 	int tls_ticket_enc_index;
 	int key_size_bits;
-	__decl_hathreads(HA_RWLOCK_T lock); /* lock used to protect the ref */
+	__decl_thread(HA_RWLOCK_T lock); /* lock used to protect the ref */
 };
 
 /* shared ssl session */
diff --git a/include/types/stick_table.h b/include/types/stick_table.h
index 832ecd2..61ca522 100644
--- a/include/types/stick_table.h
+++ b/include/types/stick_table.h
@@ -139,7 +139,7 @@
 struct stksess {
 	unsigned int expire;      /* session expiration date */
 	unsigned int ref_cnt;     /* reference count, can only purge when zero */
-	__decl_hathreads(HA_RWLOCK_T lock); /* lock related to the table entry */
+	__decl_thread(HA_RWLOCK_T lock); /* lock related to the table entry */
 	struct eb32_node exp;     /* ebtree node used to hold the session in expiration tree */
 	struct eb32_node upd;     /* ebtree node used to hold the update sequence tree */
 	struct ebmb_node key;     /* ebtree node used to hold the session in table */
@@ -163,7 +163,7 @@
 	struct eb_root exps;      /* head of sticky session expiration tree */
 	struct eb_root updates;   /* head of sticky updates sequence tree */
 	struct pool_head *pool;   /* pool used to allocate sticky sessions */
-	__decl_hathreads(HA_SPINLOCK_T lock); /* spin lock related to the table */
+	__decl_thread(HA_SPINLOCK_T lock); /* spin lock related to the table */
 	struct task *exp_task;    /* expiration task */
 	struct task *sync_task;   /* sync task */
 	unsigned int update;
diff --git a/include/types/task.h b/include/types/task.h
index fe945df..6515d46 100644
--- a/include/types/task.h
+++ b/include/types/task.h
@@ -64,7 +64,7 @@
 	struct list wake_me; /* Part of list of signals to be targeted if an
 	                        event occurs. */
 	struct task *task; /* The task to be wake if an event occurs. */
-	__decl_hathreads(HA_SPINLOCK_T lock);
+	__decl_thread(HA_SPINLOCK_T lock);
 };
 
 /* force to split per-thread stuff into separate cache lines */
diff --git a/include/types/vars.h b/include/types/vars.h
index e7d71d3..62b944b 100644
--- a/include/types/vars.h
+++ b/include/types/vars.h
@@ -19,7 +19,7 @@
 	struct list head;
 	enum vars_scope scope;
 	unsigned int size;
-	__decl_hathreads(HA_RWLOCK_T rwlock);
+	__decl_thread(HA_RWLOCK_T rwlock);
 };
 
 /* This struct describes a variable. */
