qemu-devel
[Top][All Lists]
Advanced

[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 18:39:31 +0200



Il sab 16 lug 2022, 13:30 Akihiko Odaki <akihiko.odaki@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

[Prev in Thread] Current Thread [Next in Thread]