1 // RUN: %clangxx_tsan -O1 %s -o %t && TSAN_OPTIONS="atexit_sleep_ms=50" %run %t 2>&1 | FileCheck %s
12 static void *incrementer(void *p
) {
14 __sync_fetch_and_add(&counter
, 1);
18 static void *watchdog(void *p
) {
20 fprintf(stderr
, "timed out after 100 seconds\n");
27 pthread_create(&th1
, 0, incrementer
, 0);
28 pthread_create(&th2
, 0, watchdog
, 0);
29 for (int i
= 0; i
< 10; i
++) {
32 while (wait(0) < 0) {}
36 __sync_fetch_and_add(&counter
, 1);
40 fprintf(stderr
, "failed to fork (%d)\n", errno
);
44 fprintf(stderr
, "OK\n");