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



reply via email to

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