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

This commit is contained in:
Lucas Fernandes Nogueira
2021-12-28 22:51:33 -03:00
committed by GitHub
parent 3206a7088c
commit 9c82006b2f
2 changed files with 11 additions and 2 deletions

View File

@@ -0,0 +1,7 @@
---
"tauri-runtime-wry": patch
"tauri": patch
---
Fixes a deadlock when creating a window from a menu event handler.

View File

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