199451b44SJordan Rupprecht #include <pthread.h>
299451b44SJordan Rupprecht #include <stdio.h>
399451b44SJordan Rupprecht #include <stdlib.h>
499451b44SJordan Rupprecht
599451b44SJordan Rupprecht char *pointer;
699451b44SJordan Rupprecht
f1(void * p)799451b44SJordan Rupprecht void *f1(void *p) {
899451b44SJordan Rupprecht pointer[0] = 'x'; // thread1 line
999451b44SJordan Rupprecht return NULL;
1099451b44SJordan Rupprecht }
1199451b44SJordan Rupprecht
f2(void * p)1299451b44SJordan Rupprecht void *f2(void *p) {
1399451b44SJordan Rupprecht pointer[0] = 'y'; // thread2 line
1499451b44SJordan Rupprecht return NULL;
1599451b44SJordan Rupprecht }
1699451b44SJordan Rupprecht
main(int argc,char const * argv[])1799451b44SJordan Rupprecht int main (int argc, char const *argv[])
1899451b44SJordan Rupprecht {
19*a114f151SDmitry Vyukov for (int i = 0; i < 100; i++) {
2099451b44SJordan Rupprecht pointer = (char *)malloc(10); // malloc line
2199451b44SJordan Rupprecht
2299451b44SJordan Rupprecht pthread_t t1, t2;
2399451b44SJordan Rupprecht pthread_create(&t1, NULL, f1, NULL);
2499451b44SJordan Rupprecht pthread_create(&t2, NULL, f2, NULL);
2599451b44SJordan Rupprecht
2699451b44SJordan Rupprecht pthread_join(t1, NULL);
2799451b44SJordan Rupprecht pthread_join(t2, NULL);
2899451b44SJordan Rupprecht
29*a114f151SDmitry Vyukov free(pointer);
30*a114f151SDmitry Vyukov }
3199451b44SJordan Rupprecht return 0;
3299451b44SJordan Rupprecht }
33