add new API function pa_in_valgrind() to check for
authorLennart Poettering <lennart@poettering.net>
Fri, 3 Oct 2008 22:10:43 +0000 (00:10 +0200)
committerLennart Poettering <lennart@poettering.net>
Fri, 3 Oct 2008 22:10:43 +0000 (00:10 +0200)
src/pulsecore/core-util.c
src/pulsecore/core-util.h

index 0bc5cb4..dde34d7 100644 (file)
@@ -2472,3 +2472,18 @@ char *pa_uname_string(void) {
 
     return pa_sprintf_malloc("%s %s %s %s", u.sysname, u.machine, u.release, u.version);
 }
+
+#ifdef HAVE_VALGRIND_MEMCHECK_H
+pa_bool_t pa_in_valgrind(void) {
+    static int b = 0;
+
+    /* To make heisenbugs a bit simpler to find we check for $VALGRIND
+     * here instead of really checking whether we run in valgrind or
+     * not. */
+
+    if (b < 1)
+        b = getenv("VALGRIND") ? 2 : 1;
+
+    return b > 1;
+}
+#endif
index df8ce3f..fd6ee89 100644 (file)
 #include <pulse/gccmacro.h>
 #include <pulsecore/macro.h>
 
+#ifndef PACKAGE
+#error "Please include config.h before including this file!"
+#endif
+
 struct timeval;
 
 /* These resource limits are pretty new on Linux, let's define them
@@ -193,4 +197,13 @@ pa_bool_t pa_in_system_mode(void);
 char *pa_machine_id(void);
 char *pa_uname_string(void);
 
+
+#ifdef HAVE_VALGRIND_MEMCHECK_H
+pa_bool_t pa_in_valgrind(void);
+#else
+static inline pa_bool_t pa_in_valgrind(void) {
+    return FALSE;
+}
+#endif
+
 #endif