From 9c82006b2fe166d20510183e36cee099bf96e8d9 Mon Sep 17 00:00:00 2001 From: Lucas Fernandes Nogueira Date: Tue, 28 Dec 2021 22:51:33 -0300 Subject: [PATCH] fix(core): deadlock when creating window from menu handler, closes #3110 (#3126) --- .changes/fix-deadlock-create-window-from-menu.md | 7 +++++++ core/tauri-runtime-wry/src/lib.rs | 6 ++++-- 2 files changed, 11 insertions(+), 2 deletions(-) create mode 100644 .changes/fix-deadlock-create-window-from-menu.md diff --git a/.changes/fix-deadlock-create-window-from-menu.md b/.changes/fix-deadlock-create-window-from-menu.md new file mode 100644 index 000000000..6ac2fb835 --- /dev/null +++ b/.changes/fix-deadlock-create-window-from-menu.md @@ -0,0 +1,7 @@ +--- +"tauri-runtime-wry": patch +"tauri": patch +--- + +Fixes a deadlock when creating a window from a menu event handler. + \ No newline at end of file diff --git a/core/tauri-runtime-wry/src/lib.rs b/core/tauri-runtime-wry/src/lib.rs index 78460179a..c74c224be 100644 --- a/core/tauri-runtime-wry/src/lib.rs +++ b/core/tauri-runtime-wry/src/lib.rs @@ -2279,8 +2279,10 @@ fn handle_event_loop( let event = MenuEvent { menu_item_id: menu_id.0, }; - let listeners = menu_event_listeners.lock().unwrap(); - let window_menu_event_listeners = listeners.get(&window_id).cloned().unwrap_or_default(); + let window_menu_event_listeners = { + let listeners = menu_event_listeners.lock().unwrap(); + listeners.get(&window_id).cloned().unwrap_or_default() + }; for handler in window_menu_event_listeners.lock().unwrap().values() { handler(&event); }