diff options
author | Jeff Hostetler <jeffhost@microsoft.com> | 2019-05-21 12:33:59 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2019-05-28 10:52:34 -0700 |
commit | 5fdae9d3be45ce17e22b5f7a742cae3dfe687516 (patch) | |
tree | b8d098c02499e6d8ca6b494eee58542927adfeb9 /trace2 | |
parent | trace2: fix up a missing "leave" entry point (diff) | |
download | tgif-5fdae9d3be45ce17e22b5f7a742cae3dfe687516.tar.xz |
trace2: fix tracing when NO_PTHREADS is defined
Teach trace2 TLS code to not rely on pthread_getspecific() when NO_PTHREADS
is defined. Instead, always assume the context data of the main thread.
Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'trace2')
-rw-r--r-- | trace2/tr2_tls.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/trace2/tr2_tls.c b/trace2/tr2_tls.c index 8e65b0361d..e0c4529f73 100644 --- a/trace2/tr2_tls.c +++ b/trace2/tr2_tls.c @@ -47,7 +47,12 @@ struct tr2tls_thread_ctx *tr2tls_create_self(const char *thread_name) struct tr2tls_thread_ctx *tr2tls_get_self(void) { - struct tr2tls_thread_ctx *ctx = pthread_getspecific(tr2tls_key); + struct tr2tls_thread_ctx *ctx; + + if (!HAVE_THREADS) + return tr2tls_thread_main; + + ctx = pthread_getspecific(tr2tls_key); /* * If the thread-proc did not call trace2_thread_start(), we won't @@ -62,9 +67,10 @@ struct tr2tls_thread_ctx *tr2tls_get_self(void) int tr2tls_is_main_thread(void) { - struct tr2tls_thread_ctx *ctx = pthread_getspecific(tr2tls_key); + if (!HAVE_THREADS) + return 1; - return ctx == tr2tls_thread_main; + return pthread_getspecific(tr2tls_key) == tr2tls_thread_main; } void tr2tls_unset_self(void) |