summaryrefslogtreecommitdiffstats
path: root/memory/jemalloc/src/test/include/test/mtx.h
diff options
context:
space:
mode:
Diffstat (limited to 'memory/jemalloc/src/test/include/test/mtx.h')
-rw-r--r--memory/jemalloc/src/test/include/test/mtx.h23
1 files changed, 23 insertions, 0 deletions
diff --git a/memory/jemalloc/src/test/include/test/mtx.h b/memory/jemalloc/src/test/include/test/mtx.h
new file mode 100644
index 000000000..58afbc3d1
--- /dev/null
+++ b/memory/jemalloc/src/test/include/test/mtx.h
@@ -0,0 +1,23 @@
+/*
+ * mtx is a slightly simplified version of malloc_mutex. This code duplication
+ * is unfortunate, but there are allocator bootstrapping considerations that
+ * would leak into the test infrastructure if malloc_mutex were used directly
+ * in tests.
+ */
+
+typedef struct {
+#ifdef _WIN32
+ CRITICAL_SECTION lock;
+#elif (defined(JEMALLOC_OS_UNFAIR_LOCK))
+ os_unfair_lock lock;
+#elif (defined(JEMALLOC_OSSPIN))
+ OSSpinLock lock;
+#else
+ pthread_mutex_t lock;
+#endif
+} mtx_t;
+
+bool mtx_init(mtx_t *mtx);
+void mtx_fini(mtx_t *mtx);
+void mtx_lock(mtx_t *mtx);
+void mtx_unlock(mtx_t *mtx);