Browse Source

Linux: Release X lock when unregistering file descriptor in order to avoid deadlocks

v6.1.6
reuk 4 years ago
parent
commit
bd0ca90952
No known key found for this signature in database GPG Key ID: 9ADCD339CFC98A11
1 changed files with 12 additions and 7 deletions
  1. +12
    -7
      modules/juce_gui_basics/native/x11/juce_linux_XWindowSystem.cpp

+ 12
- 7
modules/juce_gui_basics/native/x11/juce_linux_XWindowSystem.cpp View File

@@ -3198,17 +3198,22 @@ void XWindowSystem::destroyXDisplay()
{ {
jassert (display != nullptr); jassert (display != nullptr);
XWindowSystemUtilities::ScopedXLock xLock;
{
XWindowSystemUtilities::ScopedXLock xLock;
X11Symbols::getInstance()->xDestroyWindow (display, juce_messageWindowHandle);
juce_messageWindowHandle = 0;
X11Symbols::getInstance()->xSync (display, True);
X11Symbols::getInstance()->xDestroyWindow (display, juce_messageWindowHandle);
juce_messageWindowHandle = 0;
X11Symbols::getInstance()->xSync (display, True);
}
LinuxEventLoop::unregisterFdCallback (X11Symbols::getInstance()->xConnectionNumber (display)); LinuxEventLoop::unregisterFdCallback (X11Symbols::getInstance()->xConnectionNumber (display));
X11Symbols::getInstance()->xCloseDisplay (display);
display = nullptr;
displayVisuals = nullptr;
{
XWindowSystemUtilities::ScopedXLock xLock;
X11Symbols::getInstance()->xCloseDisplay (display);
display = nullptr;
displayVisuals = nullptr;
}
} }
} }


Loading…
Cancel
Save