#include <dispatch/dispatch.h>
#include <pthread.h>
#include <stdio.h>
#include "../test.h"
long g = 0;
long h = 0;
__attribute__((disable_sanitizer_instrumentation))
void f() {
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
g++;
});
h++;
}
#if (__APPLE__)
__attribute__((weak))
#endif
__attribute__((disable_sanitizer_instrumentation))
extern void
__tsan_on_report() {
fprintf(stderr, "Report.\n");
AnnotateIgnoreSyncBegin(__FILE__, __LINE__);
f();
AnnotateIgnoreSyncEnd(__FILE__, __LINE__);
}
int main() {
fprintf(stderr, "Hello world.\n");
f();
pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
pthread_mutex_unlock(&mutex);
fprintf(stderr, "g = %ld.\n", g);
fprintf(stderr, "h = %ld.\n", h);
fprintf(stderr, "Done.\n");
}