// RUN: %clangxx_tsan %s -o %t -framework Foundation -std=c++11
// RUN: %run %t 2>&1 | FileCheck %s

#import <Foundation/Foundation.h>
#import <libkern/OSAtomic.h>

#include <thread>

volatile int64_t retainCount = 0;

long g = 0;

void dealloc() {
  g = 42;
}

void release() {
  if (OSAtomicAdd64Barrier(-1, &retainCount) == 0) {
    dealloc();
  }
}

void retain() {
  OSAtomicAdd64Barrier(1, &retainCount);
}

int main(int argc, const char * argv[]) {
  fprintf(stderr, "start\n");
  retain();
  retain();
  
  std::thread t([]{
    release();
  });

  g = 47;

  release();
  t.join();

  fprintf(stderr, "end, g = %ld\n", g);

  return 0;
}

// CHECK: start
// CHECK: end, g = 42
// CHECK-NOT: WARNING: ThreadSanitizer
