consigo algunas dudas acerca de la conducta de este código:dispatch_sync llamada en una dispatch_async
dispatch_async(queue, ^{
sleep(2);
NSLog(@"step1");
dispatch_sync(queue, ^{
sleep(3);
NSLog(@"step 2");
});
NSLog(@"step 3");
});
A partir de estas filas que esperaba obtener como salida step1 -> step3 -> step2
pero sólo obtienen step1
.
Si cambio dispatch_sync con dispatch_async funciona como se esperaba, ¿dispatch_sync en una llamada dispatch_async crea este tipo de problema?
Edición después de respuestas ----------------
Este caso crear un punto muerto:
Puede comprobar respuesta aceptada tener explicación de esta situación y consulte este enlace para obtener documentación http://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man3/dispatch_async.3.html