Then isn’t the example functionally equivalent to: func doit() { DispatchQueue.global().async { let dataResource = loadWebResource("dataprofile.txt") let imageResource = loadWebResource("imagedata.dat") let imageTmp = decodeImage(dataResource, imageResource) let imageResult = dewarpAndCleanupImage(imageTmp) DispatchQueue.main.async { self.imageResult = imageResult } } }
if all of the API were synchronous? Why wouldn’t we just exhort people to write synchronous API code and continue using libdispatch? What am I missing? -Kenny > On Sep 8, 2017, at 2:33 PM, David Hart <da...@hartbit.com> wrote: > > >> On 8 Sep 2017, at 20:34, Kenny Leung via swift-evolution >> <swift-evolution@swift.org <mailto:swift-evolution@swift.org>> wrote: >> >> Hi All. >> >> A point of clarification in this example: >> >> func loadWebResource(_ path: String) async -> Resource >> func decodeImage(_ r1: Resource, _ r2: Resource) async -> Image >> func dewarpAndCleanupImage(_ i : Image) async -> Image >> >> func processImageData1() async -> Image { >> let dataResource = await loadWebResource("dataprofile.txt") >> let imageResource = await loadWebResource("imagedata.dat") >> let imageTmp = await decodeImage(dataResource, imageResource) >> let imageResult = await dewarpAndCleanupImage(imageTmp) >> return imageResult >> } >> >> Do these: >> >> await loadWebResource("dataprofile.txt") >> await loadWebResource("imagedata.dat") >> >> happen in in parallel? > > They don’t happen in parallel. > >> If so, how can I make the second one wait on the first one? If not, how can >> I make them go in parallel? >> >> Thanks! >> >> -Kenny >> >> _______________________________________________ >> swift-evolution mailing list >> swift-evolution@swift.org <mailto:swift-evolution@swift.org> >> https://lists.swift.org/mailman/listinfo/swift-evolution >
_______________________________________________ swift-evolution mailing list swift-evolution@swift.org https://lists.swift.org/mailman/listinfo/swift-evolution