On 4/16/25 11:52 AM, Pierrick Bouvier wrote:
> Signed-off-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
> ---
> system/main.c | 13 +++++++++++++
> 1 file changed, 13 insertions(+)
>
> diff --git a/system/main.c b/system/main.c
> index 1c022067349..b8f7157cc34 100644
> --- a/system/main.c
> +++ b/system/main.c
> @@ -69,8 +69,21 @@ int (*qemu_main)(void) = os_darwin_cfrunloop_main;
> int main(int argc, char **argv)
> {
> qemu_init(argc, argv);
> +
> + /*
> + * qemu_init acquires the BQL and replay mutex lock. BQL is acquired when
> + * initializing cpus, to block associated threads until initialization is
> + * complete. Replay_mutex lock is acquired on initialization, because it
> + * must be held when configuring icount_mode.
> + *
> + * On MacOS, qemu main event loop runs in a background thread, as main
> + * thread must be reserved for UI. Thus, we need to transfer lock ownership,
> + * and the simplest way to do that is to release them, and reacquire them
> + * from qemu_default_main.
> + */
> bql_unlock();
> replay_mutex_unlock();
> +
> if (qemu_main) {
> QemuThread main_loop_thread;
> qemu_thread_create(&main_loop_thread, "qemu_main",
Gentle ping on this patch.
@Nicholas: as you asked for this patch, would that be possible for you
to review it?
Regards,
Pierrick