xref: /llvm-project/lldb/test/API/functionalities/tsan/cpp_global_location/main.cpp (revision fdea9a4ec9b0d9585b8fe8a612686d9f44f40ddc)
1*99451b44SJordan Rupprecht #include <pthread.h>
2*99451b44SJordan Rupprecht #include <stdio.h>
3*99451b44SJordan Rupprecht #include <stdlib.h>
4*99451b44SJordan Rupprecht #include <unistd.h>
5*99451b44SJordan Rupprecht 
6*99451b44SJordan Rupprecht long my_global_variable;  // global variable
7*99451b44SJordan Rupprecht 
f1(void * p)8*99451b44SJordan Rupprecht void *f1(void *p) {
9*99451b44SJordan Rupprecht     my_global_variable = 42;
10*99451b44SJordan Rupprecht     return NULL;
11*99451b44SJordan Rupprecht }
12*99451b44SJordan Rupprecht 
f2(void * p)13*99451b44SJordan Rupprecht void *f2(void *p) {
14*99451b44SJordan Rupprecht     my_global_variable = 43;
15*99451b44SJordan Rupprecht     return NULL;
16*99451b44SJordan Rupprecht }
17*99451b44SJordan Rupprecht 
main(int argc,char const * argv[])18*99451b44SJordan Rupprecht int main (int argc, char const *argv[])
19*99451b44SJordan Rupprecht {
20*99451b44SJordan Rupprecht     pthread_t t1;
21*99451b44SJordan Rupprecht     pthread_create(&t1, NULL, f1, NULL);
22*99451b44SJordan Rupprecht 
23*99451b44SJordan Rupprecht     pthread_t t2;
24*99451b44SJordan Rupprecht     pthread_create(&t2, NULL, f2, NULL);
25*99451b44SJordan Rupprecht 
26*99451b44SJordan Rupprecht     pthread_join(t1, NULL);
27*99451b44SJordan Rupprecht     pthread_join(t2, NULL);
28*99451b44SJordan Rupprecht 
29*99451b44SJordan Rupprecht     return 0;
30*99451b44SJordan Rupprecht }
31