From b636465bc0190448f960791cd059c4dd1fa37717 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Mon, 1 Aug 2011 05:05:12 +0200 Subject: [PATCH 1/1] util: add is_main_thread() call --- src/util.c | 9 +++++++++ src/util.h | 2 ++ 2 files changed, 11 insertions(+) diff --git a/src/util.c b/src/util.c index 6382c01c5..4e2a4fab8 100644 --- a/src/util.c +++ b/src/util.c @@ -5536,6 +5536,15 @@ char *join(const char *x, ...) { return r; } +bool is_main_thread(void) { + static __thread int cached = 0; + + if (_unlikely_(cached == 0)) + cached = getpid() == gettid() ? 1 : -1; + + return cached > 0; +} + static const char *const ioprio_class_table[] = { [IOPRIO_CLASS_NONE] = "none", [IOPRIO_CLASS_RT] = "realtime", diff --git a/src/util.h b/src/util.h index eb0061cdb..407160d52 100644 --- a/src/util.h +++ b/src/util.h @@ -460,6 +460,8 @@ int get_files_in_directory(const char *path, char ***list); char *join(const char *x, ...) _sentinel_; +bool is_main_thread(void); + #define NULSTR_FOREACH(i, l) \ for ((i) = (l); (i) && *(i); (i) = strchr((i), 0)+1) -- 2.30.2