186d0ba4286ec42dcd055bd22434c7f40009834bdBlaine Garst// 286d0ba4286ec42dcd055bd22434c7f40009834bdBlaine Garst// The LLVM Compiler Infrastructure 386d0ba4286ec42dcd055bd22434c7f40009834bdBlaine Garst// 486d0ba4286ec42dcd055bd22434c7f40009834bdBlaine Garst// This file is distributed under the University of Illinois Open Source 586d0ba4286ec42dcd055bd22434c7f40009834bdBlaine Garst// License. See LICENSE.TXT for details. 686d0ba4286ec42dcd055bd22434c7f40009834bdBlaine Garst 786d0ba4286ec42dcd055bd22434c7f40009834bdBlaine Garst// CONFIG rdar://6405500 886d0ba4286ec42dcd055bd22434c7f40009834bdBlaine Garst 986d0ba4286ec42dcd055bd22434c7f40009834bdBlaine Garst#include <stdio.h> 1086d0ba4286ec42dcd055bd22434c7f40009834bdBlaine Garst#include <stdlib.h> 1186d0ba4286ec42dcd055bd22434c7f40009834bdBlaine Garst#import <dispatch/dispatch.h> 1286d0ba4286ec42dcd055bd22434c7f40009834bdBlaine Garst#import <objc/objc-auto.h> 1386d0ba4286ec42dcd055bd22434c7f40009834bdBlaine Garst 1486d0ba4286ec42dcd055bd22434c7f40009834bdBlaine Garstint main (int argc, const char * argv[]) { 1586d0ba4286ec42dcd055bd22434c7f40009834bdBlaine Garst __block void (^blockFu)(size_t t); 1686d0ba4286ec42dcd055bd22434c7f40009834bdBlaine Garst blockFu = ^(size_t t){ 1786d0ba4286ec42dcd055bd22434c7f40009834bdBlaine Garst if (t == 20) { 1886d0ba4286ec42dcd055bd22434c7f40009834bdBlaine Garst printf("%s: success\n", argv[0]); 1986d0ba4286ec42dcd055bd22434c7f40009834bdBlaine Garst exit(0); 2086d0ba4286ec42dcd055bd22434c7f40009834bdBlaine Garst } else 2186d0ba4286ec42dcd055bd22434c7f40009834bdBlaine Garst dispatch_async(dispatch_get_main_queue(), ^{ blockFu(20); }); 2286d0ba4286ec42dcd055bd22434c7f40009834bdBlaine Garst }; 2386d0ba4286ec42dcd055bd22434c7f40009834bdBlaine Garst 2486d0ba4286ec42dcd055bd22434c7f40009834bdBlaine Garst dispatch_apply(10, dispatch_get_concurrent_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT), blockFu); 2586d0ba4286ec42dcd055bd22434c7f40009834bdBlaine Garst 2686d0ba4286ec42dcd055bd22434c7f40009834bdBlaine Garst dispatch_main(); 2786d0ba4286ec42dcd055bd22434c7f40009834bdBlaine Garst printf("shouldn't get here\n"); 2886d0ba4286ec42dcd055bd22434c7f40009834bdBlaine Garst return 1; 2986d0ba4286ec42dcd055bd22434c7f40009834bdBlaine Garst} 30