MINOR: thread: provide a set of lock initialisers
This patch adds ha_spin_init() and ha_rwlock_init() which are used as
a callback to initialise locks at boot time. They perform exactly the
same as HA_SPIN_INIT() or HA_RWLOCK_INIT() but from within a real
function.
diff --git a/include/common/hathreads.h b/include/common/hathreads.h
index d2fd400..c5be9b2 100644
--- a/include/common/hathreads.h
+++ b/include/common/hathreads.h
@@ -948,6 +948,9 @@
#define __ha_barrier_full __sync_synchronize
#endif
+void ha_spin_init(HA_SPINLOCK_T *l);
+void ha_rwlock_init(HA_RWLOCK_T *l);
+
#endif /* USE_THREAD */
static inline void __ha_compiler_barrier(void)
diff --git a/src/hathreads.c b/src/hathreads.c
index 075866a..eb3eb59 100644
--- a/src/hathreads.c
+++ b/src/hathreads.c
@@ -92,6 +92,18 @@
thread_harmless_end();
}
+/* these calls are used as callbacks at init time */
+void ha_spin_init(HA_SPINLOCK_T *l)
+{
+ HA_SPIN_INIT(l);
+}
+
+/* these calls are used as callbacks at init time */
+void ha_rwlock_init(HA_RWLOCK_T *l)
+{
+ HA_RWLOCK_INIT(l);
+}
+
__attribute__((constructor))
static void __hathreads_init(void)
{