diff --git a/compiler-rt/test/tsan/Darwin/gcd-barrier.mm b/compiler-rt/test/tsan/Darwin/gcd-barrier.mm --- a/compiler-rt/test/tsan/Darwin/gcd-barrier.mm +++ b/compiler-rt/test/tsan/Darwin/gcd-barrier.mm @@ -13,34 +13,20 @@ barrier_init(&barrier, 2); dispatch_queue_t q = dispatch_queue_create("my.queue", DISPATCH_QUEUE_CONCURRENT); - dispatch_queue_t bgq = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); - dispatch_async(bgq, ^{ - dispatch_sync(q, ^{ - global = 42; - }); - barrier_wait(&barrier); + dispatch_async(q, ^{ + global = 42; }); - - dispatch_async(bgq, ^{ - barrier_wait(&barrier); - dispatch_barrier_sync(q, ^{ - global = 43; - }); - - dispatch_async(bgq, ^{ - barrier_wait(&barrier); - global = 44; - }); + dispatch_barrier_async(q, ^{ + global = 43; + }); + dispatch_async(q, ^{ + global = 44; barrier_wait(&barrier); - - dispatch_sync(dispatch_get_main_queue(), ^{ - CFRunLoopStop(CFRunLoopGetCurrent()); - }); }); - CFRunLoopRun(); + barrier_wait(&barrier); fprintf(stderr, "Done.\n"); }