Project

General

Profile

Actions

Emulator Issues #2331

closed

Unloading a plugin when its config dialog was opened causes a hang.

Added by sl1nk3.s almost 15 years ago.

Status:
Fixed
Priority:
Normal
Assignee:
Category:
UI
% Done:

0%

Operating system:
N/A
Issue type:
Bug
Milestone:
Regression:
No
Relates to usability:
No
Relates to performance:
No
Easy:
No
Relates to maintainability:
No
Regression start:
Fixed in:

Description

What steps will reproduce the problem?

  1. Open a Config dialog such as the wiimote config dialog
  2. Start any game/elf/wad on Windows
  3. Press Stop button... Dolphin is now stuck in some wx deletion stuff

What is the expected output? What do you see instead?
The expected behavior is the DLL unloading correctly.
Instead, it hangs if a Config dialog was created and it gets stuck in
wxEntryCleanup() (Plugin_Wiimote/main.cpp : line 121)

Please use labels and text to provide additional information.
One way to work around this issue is to manually call delete on the
plugin's wx config dialog, instead of letting wx do it itself through the
usual Destroy() method, this however is not recommended as per Wx wiki and
might cause issues.

We're already using this hacky workaround on both DSP config dialogs, and
the OGL config dialog, but the pad plugin and wiimote dialogs still use the
correct Destroy() method (also manually deleting the wiimote dialog crashes
due to the use of some tooltip windows)

Obviously, something is wrong with the way we use wx in our dlls, i still
haven't figured out a way to fix it, but creating a new wxApp for each
plugin as we currently do (at least on windows) looks suspicious.
Also can anyone this happens on Linux ?


Related issues 1 (0 open1 closed)

Blocks Emulator - Emulator Issues #2043: Release bug trackerFixednakeee

Actions
Actions

Also available in: Atom PDF