MINOR: threads: use faster locks for the spin locks

The spin locks used to rely on W locks, which involve a loop waiting
for readers to leave, and this doesn't happen here. It's more efficient
to use S locks instead, which are also mutually exclusive and do not
have this loop. This saves one test per spinlock and a few tens of
bytes allowing certain functions to be inlined.
diff --git a/include/common/hathreads.h b/include/common/hathreads.h
index 853c9f1..0a9098d 100644
--- a/include/common/hathreads.h
+++ b/include/common/hathreads.h
@@ -191,9 +191,9 @@
 
 #define __SPIN_INIT(l)         ({ (*l) = 0; })
 #define __SPIN_DESTROY(l)      ({ (*l) = 0; })
-#define __SPIN_LOCK(l)         pl_take_w(l)
-#define __SPIN_TRYLOCK(l)      !pl_try_w(l)
-#define __SPIN_UNLOCK(l)       pl_drop_w(l)
+#define __SPIN_LOCK(l)         pl_take_s(l)
+#define __SPIN_TRYLOCK(l)      !pl_try_s(l)
+#define __SPIN_UNLOCK(l)       pl_drop_s(l)
 
 #define __HA_RWLOCK_T		unsigned long
 
@@ -552,9 +552,9 @@
 
 #define SPIN_INIT(l)         ({ (*l) = 0; })
 #define SPIN_DESTROY(l)      ({ (*l) = 0; })
-#define SPIN_LOCK(lbl, l)    pl_take_w(l)
-#define SPIN_TRYLOCK(lbl, l) !pl_try_w(l)
-#define SPIN_UNLOCK(lbl, l)  pl_drop_w(l)
+#define SPIN_LOCK(lbl, l)    pl_take_s(l)
+#define SPIN_TRYLOCK(lbl, l) !pl_try_s(l)
+#define SPIN_UNLOCK(lbl, l)  pl_drop_s(l)
 
 #define HA_RWLOCK_T		unsigned long