MINOR: threads: Add nbthread parameter

It is only parsed and initialized for now. It will be used later. This parameter
is only available when support for threads was built in.
diff --git a/src/cfgparse.c b/src/cfgparse.c
index 4db59a3..1cb98f3 100644
--- a/src/cfgparse.c
+++ b/src/cfgparse.c
@@ -1041,6 +1041,30 @@
 			goto out;
 		}
 	}
+	else if (!strcmp(args[0], "nbthread")) {
+		if (alertif_too_many_args(1, file, linenum, args, &err_code))
+			goto out;
+		if (*(args[1]) == 0) {
+			Alert("parsing [%s:%d] : '%s' expects an integer argument.\n", file, linenum, args[0]);
+			err_code |= ERR_ALERT | ERR_FATAL;
+			goto out;
+		}
+		global.nbthread = atol(args[1]);
+		if (global.nbthread < 1 || global.nbthread > LONGBITS) {
+			Alert("parsing [%s:%d] : '%s' must be between 1 and %d (was %d).\n",
+			      file, linenum, args[0], LONGBITS, global.nbthread);
+			err_code |= ERR_ALERT | ERR_FATAL;
+			goto out;
+		}
+#ifndef USE_THREAD
+		if (global.nbthread > 1) {
+			Alert("HAProxy is not compiled with threads support, please check build options for USE_THREAD.\n");
+			global.nbthread = 1;
+			err_code |= ERR_ALERT | ERR_FATAL;
+			goto out;
+		}
+#endif
+	}
 	else if (!strcmp(args[0], "maxconn")) {
 		if (alertif_too_many_args(1, file, linenum, args, &err_code))
 			goto out;
diff --git a/src/haproxy.c b/src/haproxy.c
index a4e62a7..bd8dfd6 100644
--- a/src/haproxy.c
+++ b/src/haproxy.c
@@ -77,6 +77,7 @@
 #include <common/time.h>
 #include <common/uri_auth.h>
 #include <common/version.h>
+#include <common/hathreads.h>
 
 #include <types/capture.h>
 #include <types/filters.h>
@@ -122,6 +123,7 @@
 struct global global = {
 	.hard_stop_after = TICK_ETERNITY,
 	.nbproc = 1,
+	.nbthread = 1,
 	.req_count = 0,
 	.logsrvs = LIST_HEAD_INIT(global.logsrvs),
 	.maxzlibmem = 0,
@@ -1754,6 +1756,9 @@
 	if (global.nbproc < 1)
 		global.nbproc = 1;
 
+	if (global.nbthread < 1)
+		global.nbthread = 1;
+
 	/* Realloc trash buffers because global.tune.bufsize may have changed */
 	if (!init_trash_buffers()) {
 		Alert("failed to initialize trash buffers.\n");