Il sab 16 lug 2022, 13:30 Akihiko Odaki <akihiko.od...@gmail.com> ha
scritto:

> 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.
>

Is this documented anywhere?

Paolo

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