git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 1/1] trace2: fix tracing when NO_PTHREADS is defined

From
JGJeff Hostetler via GitGitGadget <gitgitgadget@gmail.com>
Date
May 21, 2019, 19:33 UTC
Message-ID
<c195394c86c1ee599945cd4ea65633a72a3fd30e.1558467237.git.gitgitgadget@gmail.com>
In-Reply-To
<pull.222.git.gitgitgadget@gmail.com>
From: Jeff Hostetler <jeffhost@microsoft.com>

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>
---
 trace2/tr2_tls.c | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/trace2/tr2_tls.c b/trace2/tr2_tls.c
index e76d8c5d92..067c23755f 100644
--- a/trace2/tr2_tls.c
+++ b/trace2/tr2_tls.c
@@ -61,7 +61,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
@@ -76,9 +81,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)
-- 
gitgitgadget
Previous: Jeff Hostetler via GitGitGadgetNext: Jeff King
Message 2 of 10 in “trace2: fix tracing when NO_PTHREADS is defined”
  1. 0/1 trace2: fix tracing when NO_PTHREADS is definedJeff Hostetler via GitGitGadget, May 21, 2019
  2. 1/1 trace2: fix tracing when NO_PTHREADS is definedJeff Hostetler via GitGitGadget, May 21, 2019
  3. Jeff KingMay 21, 2019
  4. Jeff HostetlerMay 22, 2019
  5. Jeff KingMay 23, 2019
  6. Jeff HostetlerMay 23, 2019
  7. Duy NguyenMay 25, 2019
  8. Jeff KingMay 28, 2019
  9. Jeff HostetlerMay 28, 2019
  10. Junio C HamanoMay 28, 2019

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.