MEDIUM: threads/signal: Add a lock to make signals thread-safe

A global lock has been added to protect the signal processing. So when a signal
it triggered, only one thread will catch it.
diff --git a/include/proto/signal.h b/include/proto/signal.h
index 6556446..084fa7d 100644
--- a/include/proto/signal.h
+++ b/include/proto/signal.h
@@ -13,6 +13,8 @@
 
 #include <signal.h>
 #include <common/standard.h>
+#include <common/hathreads.h>
+
 #include <types/signal.h>
 #include <types/task.h>
 
@@ -20,6 +22,10 @@
 extern struct signal_descriptor signal_state[];
 extern struct pool_head *pool2_sig_handlers;
 
+#ifdef USE_THREAD
+extern HA_SPINLOCK_T signals_lock;
+#endif
+
 void signal_handler(int sig);
 void __signal_process_queue();
 int signal_init();