Skip to content

Commit 23a4800

Browse files
authored
fix(tauri-runtime-wry): deadlock on file drop, closes #4527 (#4535)
1 parent bf764e8 commit 23a4800

3 files changed

Lines changed: 19 additions & 10 deletions

File tree

.changes/fix-deadlock-file-drop.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"tauri-runtime-wry": patch
3+
---
4+
5+
Fixes a deadlock on the file drop handler.

core/tauri-runtime-wry/src/lib.rs

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3013,9 +3013,13 @@ fn create_file_drop_handler<T: UserEvent>(context: &Context<T>) -> Box<FileDropH
30133013
Box::new(move |window, event| {
30143014
let event: FileDropEvent = FileDropEventWrapper(event).into();
30153015
let window_event = WindowEvent::FileDrop(event);
3016-
let windows = windows.lock().unwrap();
3017-
if let Some(window) = windows.get(&webview_id_map.get(&window.id())) {
3018-
let listeners_map = window.window_event_listeners.lock().unwrap();
3016+
let window_event_listeners = windows
3017+
.lock()
3018+
.unwrap()
3019+
.get(&webview_id_map.get(&window.id()))
3020+
.map(|w| w.window_event_listeners.clone());
3021+
if let Some(window_event_listeners) = window_event_listeners {
3022+
let listeners_map = window_event_listeners.lock().unwrap();
30193023
let has_listener = !listeners_map.is_empty();
30203024
let handlers = listeners_map.values();
30213025
for listener in handlers {

examples/api/src-tauri/Cargo.lock

Lines changed: 7 additions & 7 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)