qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH] Fix for crashes and non-responsive UI on macOS


From: Programmingkid
Subject: Re: [Qemu-devel] [PATCH] Fix for crashes and non-responsive UI on macOS Mojave
Date: Tue, 13 Nov 2018 07:12:06 -0500

> On Nov 11, 2018, at 4:35 PM, address@hidden wrote:
> 
> It seems that Cocoa checks are stricter on Mojave and some callbacks that 
> worked from non-GUI thread on High Sierra are no longer working.
> 
> The fixes included here are:
> 
> * Deferring qemu_main() to another thread so that the actual main thread is 
> reserved for the Cocoa UI; it also removes blocking from 
> applicationDidFinishLoading: delegate. I beleive this alone caused complete 
> UI blockage on Mojave.
> * Deferring UI-related updates in callbacks to the UI thread using 
> invokeOnMainThread helper function. This function uses DDInvocationGrabber 
> object courtesy of Dave Dribin, licensed under MIT license.
> Here?s relevant blog post for his code: 
> https://www.dribin.org/dave/blog/archives/2008/05/22/invoke_on_main_thread/
> 
> NSInvocation is used here instead of plain 
> performSelectorOnMainThread:withObject:waitUntilDone: because we want to be 
> able to pass non-id types to the handlers.

Couldn't we use [NSValue valueWithPointer:] to pass the struct instance to 
performSelectorOnMainThread:withObject:waitUntilDone:?

https://developer.apple.com/documentation/foundation/nsvalue/1415975-valuewithpointer?language=objc

> These changes are ought to work on OSX 10.6, although I don?t have a machine 
> handy to test it.

I have Mac OS 10.6 available for testing. I just don't think all this code is 
necessary to fix this issue. Hopefully I will have the time later today to 
investigate this issue some more.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]