浏览代码

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

Lucas Fernandes Nogueira 3 年之前
父节点
当前提交
9c82006b2f
共有 2 个文件被更改,包括 11 次插入2 次删除
  1. 7 0
      .changes/fix-deadlock-create-window-from-menu.md
  2. 4 2
      core/tauri-runtime-wry/src/lib.rs

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