1*5b4100ccSJohn Harrison#import <dispatch/dispatch.h> 2*5b4100ccSJohn Harrison#include <stdio.h> 3*5b4100ccSJohn Harrison 4*5b4100ccSJohn Harrisonvoid one() { 5*5b4100ccSJohn Harrison printf("one...\n"); // breakpoint 1 6*5b4100ccSJohn Harrison} 7*5b4100ccSJohn Harrison 8*5b4100ccSJohn Harrisonvoid two() { 9*5b4100ccSJohn Harrison printf("two...\n"); 10*5b4100ccSJohn Harrison one(); 11*5b4100ccSJohn Harrison} 12*5b4100ccSJohn Harrison 13*5b4100ccSJohn Harrisonvoid three() { 14*5b4100ccSJohn Harrison printf("three...\n"); 15*5b4100ccSJohn Harrison two(); 16*5b4100ccSJohn Harrison} 17*5b4100ccSJohn Harrison 18*5b4100ccSJohn Harrisonint main(int argc, char *argv[]) { 19*5b4100ccSJohn Harrison printf("main...\n"); 20*5b4100ccSJohn Harrison // Nest from main queue > global queue > main queue. 21*5b4100ccSJohn Harrison dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), 22*5b4100ccSJohn Harrison ^{ 23*5b4100ccSJohn Harrison dispatch_async(dispatch_get_main_queue(), ^{ 24*5b4100ccSJohn Harrison three(); 25*5b4100ccSJohn Harrison }); 26*5b4100ccSJohn Harrison }); 27*5b4100ccSJohn Harrison dispatch_main(); 28*5b4100ccSJohn Harrison} 29