diff options
Diffstat (limited to 'lldb/test/functionalities/thread/create_during_step/main.cpp')
-rw-r--r-- | lldb/test/functionalities/thread/create_during_step/main.cpp | 19 |
1 files changed, 8 insertions, 11 deletions
diff --git a/lldb/test/functionalities/thread/create_during_step/main.cpp b/lldb/test/functionalities/thread/create_during_step/main.cpp index c5a36e02394..3a00248c022 100644 --- a/lldb/test/functionalities/thread/create_during_step/main.cpp +++ b/lldb/test/functionalities/thread/create_during_step/main.cpp @@ -10,8 +10,8 @@ // This test is intended to create a situation in which one thread will be // created while the debugger is stepping in another thread. -#include <pthread.h> #include <atomic> +#include <thread> // Note that although hogging the CPU while waiting for a variable to change // would be terrible in production code, it's great for testing since it @@ -31,7 +31,7 @@ volatile int g_thread_created = 0; volatile int g_test = 0; void * -step_thread_func (void *input) +step_thread_func () { g_test = 0; // Set breakpoint here @@ -48,13 +48,13 @@ step_thread_func (void *input) void * create_thread_func (void *input) { - pthread_t *step_thread = (pthread_t*)input; + std::thread *step_thread = (std::thread*)input; // Wait until the main thread knows this thread is started. pseudo_barrier_wait(g_barrier); // Wait until the other thread is done. - pthread_join(*step_thread, NULL); + step_thread->join(); // Return return NULL; @@ -62,21 +62,18 @@ create_thread_func (void *input) int main () { - pthread_t thread_1; - pthread_t thread_2; - // Use a simple count to simulate a barrier. pseudo_barrier_init(g_barrier, 2); // Create a thread to hit the breakpoint. - pthread_create (&thread_1, NULL, step_thread_func, NULL); + std::thread thread_1(step_thread_func); // Wait until the step thread is stepping while (g_test < 1) do_nothing(); // Create a thread to exit while we're stepping. - pthread_create (&thread_2, NULL, create_thread_func, &thread_1); + std::thread thread_2(create_thread_func, &thread_1); // Wait until that thread is started pseudo_barrier_wait(g_barrier); @@ -85,8 +82,8 @@ int main () g_thread_created = 1; // Wait for the threads to finish. - pthread_join(thread_2, NULL); - pthread_join(thread_1, NULL); + thread_2.join(); + thread_1.join(); return 0; } |