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