summaryrefslogtreecommitdiffstats
path: root/lldb/packages/Python/lldbsuite/test/commands/process/attach-resume/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/commands/process/attach-resume/main.cpp')
-rw-r--r--lldb/packages/Python/lldbsuite/test/commands/process/attach-resume/main.cpp35
1 files changed, 35 insertions, 0 deletions
diff --git a/lldb/packages/Python/lldbsuite/test/commands/process/attach-resume/main.cpp b/lldb/packages/Python/lldbsuite/test/commands/process/attach-resume/main.cpp
new file mode 100644
index 00000000000..82aad70eed5
--- /dev/null
+++ b/lldb/packages/Python/lldbsuite/test/commands/process/attach-resume/main.cpp
@@ -0,0 +1,35 @@
+#include <stdio.h>
+#include <fcntl.h>
+
+#include <chrono>
+#include <thread>
+
+volatile bool debugger_flag = true; // The debugger will flip this to false
+
+void *start(void *data)
+{
+ int i;
+ size_t idx = (size_t)data;
+ for (i=0; i<30; i++)
+ {
+ if ( idx == 0 && debugger_flag)
+ std::this_thread::sleep_for(std::chrono::microseconds(1)); // Set breakpoint here
+ std::this_thread::sleep_for(std::chrono::seconds(1));
+ }
+ return 0;
+}
+
+int main(int argc, char const *argv[])
+{
+ lldb_enable_attach();
+
+ static const size_t nthreads = 16;
+ std::thread threads[nthreads];
+ size_t i;
+
+ for (i=0; i<nthreads; i++)
+ threads[i] = std::move(std::thread(start, (void*)i));
+
+ for (i=0; i<nthreads; i++)
+ threads[i].join();
+}
OpenPOWER on IntegriCloud