Kaynağa Gözat

fix(core): deadlock when creating window from menu handler, closes #3110 (#3126)

Lucas Fernandes Nogueira 3 yıl önce
ebeveyn
işleme
9c82006b2f

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

+ 4 - 2
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);
       }