From f173b2fc9d03d9e56376ed9ad4c06e82949060dd Mon Sep 17 00:00:00 2001 From: John Baldwin Date: Mon, 6 Mar 2023 16:55:22 -0800 Subject: [PATCH] gdb.threads/next-bp-other-thread.c: Ensure child thread is started. Use a pthread_barrier to ensure the child thread is started before the main thread gets to the first breakpoint. --- gdb/testsuite/gdb.threads/next-bp-other-thread.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/gdb/testsuite/gdb.threads/next-bp-other-thread.c b/gdb/testsuite/gdb.threads/next-bp-other-thread.c index 60aa029464c..33c6ec11982 100644 --- a/gdb/testsuite/gdb.threads/next-bp-other-thread.c +++ b/gdb/testsuite/gdb.threads/next-bp-other-thread.c @@ -22,9 +22,13 @@ /* Always zero, used in breakpoint condition. */ volatile int global_zero; +static pthread_barrier_t threads_started_barrier; + void * child_function (void *arg) { + pthread_barrier_wait (&threads_started_barrier); + while (1) { usleep (1); /* set breakpoint child here */ @@ -39,7 +43,12 @@ main (void) pthread_t child_thread; int res; + pthread_barrier_init (&threads_started_barrier, NULL, 2); + res = pthread_create (&child_thread, NULL, child_function, NULL); + + pthread_barrier_wait (&threads_started_barrier); + sleep (2); /* set wait-thread breakpoint here */ exit (EXIT_SUCCESS); } -- 2.30.2