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


Reply via email to