[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v3 1/3] ui/cocoa: Run qemu_init in the main thread
From: |
Paolo Bonzini |
Subject: |
Re: [PATCH v3 1/3] ui/cocoa: Run qemu_init in the main thread |
Date: |
Sat, 16 Jul 2022 12:16:03 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.10.0 |
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:
- 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
[PATCH v3 2/3] Revert "main-loop: Disable block backend global state assertion on Cocoa", Akihiko Odaki, 2022/07/15
[PATCH v3 3/3] meson: Allow to enable gtk and sdl while cocoa is enabled, Akihiko Odaki, 2022/07/15