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>
36 lines
638 B
C++
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;
|
|
}
|