Files
clang-p2996/lldb/test/Shell/ScriptInterpreter/Python/Crashlog/Inputs/multithread-test.cc
Med Ismail Bennani 0a65112cf7 [lldb/crashlog] Create artificial frames for non-crashed scripted threads
This patch pipes down the `-a|--load-all` crashlog command option to the
Scripted Process initializer to load all the images used by crashed
process instead of only loading the images related to the crashed
thread.

This allows us to recreate artificial frames also for the non-crashed
scripted threads.

rdar://90396265

Differential Revision: https://reviews.llvm.org/D121826

Signed-off-by: Med Ismail Bennani <medismail.bennani@gmail.com>
2022-03-16 15:50:10 -07:00

36 lines
638 B
C++

#include <iostream>
#include <mutex>
#include <thread>
int bar(int i) {
int *j = 0;
*j = 1;
return i; // break here
}
int foo(int i) { return bar(i); }
void call_and_wait(int &n) {
std::cout << "waiting for computation!" << std::endl;
while (n != 42 * 42)
;
std::cout << "finished computation!" << std::endl;
}
void compute_pow(int &n) { n = foo(n); }
int main() {
int n = 42;
std::mutex mutex;
std::unique_lock<std::mutex> lock(mutex);
std::thread thread_1(call_and_wait, std::ref(n));
std::thread thread_2(compute_pow, std::ref(n));
lock.unlock();
thread_1.join();
thread_2.join();
return 0;
}