brintos

brintos / llvm-project-archived public Read only

0
0
Text · 601 B · 23240e7 Raw
33 lines · cpp
1#include <pthread.h>2#include <stdlib.h>3#include <stdio.h>4 5const int N = 1000;6void *x[N];7 8void *Thread1(void *unused) {9  for (int i = 0; i < N; i++) {10    fprintf(stderr, "%s %d\n", __func__, i);11    free(x[i]);12  }13  return NULL;14}15 16void *Thread2(void *unused) {17  for (int i = 0; i < N; i++) {18    fprintf(stderr, "%s %d\n", __func__, i);19    free(x[i]);20  }21  return NULL;22}23 24int main() {25  for (int i = 0; i < N; i++)26    x[i] = malloc(128);27  pthread_t t[2];28  pthread_create(&t[0], 0, Thread1, 0);29  pthread_create(&t[1], 0, Thread2, 0);30  pthread_join(t[0], 0);31  pthread_join(t[1], 0);32}33