From 8222f1200fc2db90fdfde17f5f958f04272f9ade Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Sat, 4 Oct 2008 00:10:43 +0200 Subject: add new API function pa_in_valgrind() to check for --- src/pulsecore/core-util.c | 15 +++++++++++++++ src/pulsecore/core-util.h | 13 +++++++++++++ 2 files changed, 28 insertions(+) diff --git a/src/pulsecore/core-util.c b/src/pulsecore/core-util.c index 0bc5cb40..dde34d7b 100644 --- a/src/pulsecore/core-util.c +++ b/src/pulsecore/core-util.c @@ -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 diff --git a/src/pulsecore/core-util.h b/src/pulsecore/core-util.h index df8ce3f8..fd6ee896 100644 --- a/src/pulsecore/core-util.h +++ b/src/pulsecore/core-util.h @@ -35,6 +35,10 @@ #include #include +#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 -- cgit