diff options
author | Lennart Poettering <lennart@poettering.net> | 2011-08-01 05:05:12 +0200 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2011-08-01 05:05:12 +0200 |
commit | b636465bc0190448f960791cd059c4dd1fa37717 (patch) | |
tree | 03484804e0ce940f20e90592db839726c1b66767 | |
parent | cd0ed1db9b58900959866e7b265fae2b153b68c0 (diff) |
util: add is_main_thread() call
-rw-r--r-- | src/util.c | 9 | ||||
-rw-r--r-- | src/util.h | 2 |
2 files changed, 11 insertions, 0 deletions
diff --git a/src/util.c b/src/util.c index 6382c01c55..4e2a4fab83 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 eb0061cdb5..407160d528 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) |