diff --git a/src/platform/wxwidgets/main.cpp b/src/platform/wxwidgets/main.cpp index 1245ac4d..eb64ee02 100644 --- a/src/platform/wxwidgets/main.cpp +++ b/src/platform/wxwidgets/main.cpp @@ -143,6 +143,7 @@ namespace main_window->notify_exit(); } else if(c == UISERV_UIFUN) { std::list::iterator i; + ui_queue_entry e; queue_synchronous_fn_warning = true; back: { @@ -150,12 +151,10 @@ back: if(ui_queue.empty()) goto end; i = ui_queue.begin(); - } - i->fn(i->arg); - { - mutex::holder h(*ui_mutex); + e = *i; ui_queue.erase(i); } + e.fn(e.arg); goto back; end: queue_synchronous_fn_warning = false;