On 2022/07/16 19:16, Paolo Bonzini wrote:
On 7/15/22 15:47, Akihiko Odaki wrote:
static void *call_qemu_main(void *opaque)
{
...
+ [NSApp terminate:nil];
Is this thread-safe? I think it should be something like:
Yes, -[NSApplication terminate:] is thread-safe. Methods of
NSApplication handle dispatches to the main thread by themselves.
Regards,
Akihiko Odaki
- here:
/*
* Nothing more to do in the QEMU thread, ask the application
* to exit.
*/
dispatch_async(dispatch_get_main_queue(), ^{
[NSApp terminate: nil];
});
- in verifyQuit:
if([alert runModal] == NSAlertSecondButtonReturn) {
with_iothread_lock(^{
shutdown_action = SHUTDOWN_ACTION_POWEROFF;
qemu_system_shutdown_request(SHUTDOWN_CAUSE_HOST_UI);
});
}
/* and just return void */
- applicationShouldTerminate: should be just
if (qatomic_read(&qemu_main_terminating)) {
return NSTerminateNow;
} else {
dispatch_async(dispatch_get_main_queue(), ^{
[self verifyQuit];
});
}
return NSTerminateCancel;
- applicationWillTerminate: can be just the qemu_thread_join
Paolo