Hi, > NB: the code to asynchronously run code blocks on the > main thread uses dispatch_get_main_queue(), which is a > 10.10-or-later function. If we're going to go with this > refactoring I think the benefit in clarity-of-code is a > worthwhile gain for dropping support for ancient OSX versions. > > Patchset structure: > * patch 1 does the "make sure we have the iothread lock for > calls into QEMU" (which is effectively a no-op initially > since we'll already be holding that lock when our refresh > etc callbacks are called) > * patch 2 makes switchSurface directly take the pixman image > (which is refcounted) rather than the DisplaySurface (which > is not), so we can make the calls to it asynchronous later > * patches 3 and 4 are just trivial code motion > * patch 5 does the bulk of the work (and can't really be split > further without the UI being broken at the intermediate point)
DisplaySurface / pixman changes look sane to me. Can't really comment on the cocoa changes. cheers, Gerd