From 2bfceddc1fa2b47f5b812c98384011c8209a398d Mon Sep 17 00:00:00 2001
From: Guillaume Pasero <guillaume.pasero@c-s.fr>
Date: Mon, 28 Nov 2016 16:05:18 +0100
Subject: [PATCH] BUG: avoid dl-close issue by cleaning resources ourselves

---
 .../Wrappers/QtWidget/src/otbApplicationLauncherQt.cxx   | 9 ++++++++-
 .../QtWidget/test/otbWrapperQtWidgetShowWidget.cxx       | 2 ++
 2 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/Modules/Wrappers/QtWidget/src/otbApplicationLauncherQt.cxx b/Modules/Wrappers/QtWidget/src/otbApplicationLauncherQt.cxx
index 99e0779a57..3fa73b3298 100644
--- a/Modules/Wrappers/QtWidget/src/otbApplicationLauncherQt.cxx
+++ b/Modules/Wrappers/QtWidget/src/otbApplicationLauncherQt.cxx
@@ -103,5 +103,12 @@ int main(int argc, char* argv[])
   mainWindow->show();
 
   // Start event processing loop
-  return qtApp.exec();
+  int ret = qtApp.exec();
+
+  // Clean resources
+  if (mainWindow) delete mainWindow;
+  app = ITK_NULLPTR;
+  ApplicationRegistry::CleanRegistry();
+
+  return ret;
 }
diff --git a/Modules/Wrappers/QtWidget/test/otbWrapperQtWidgetShowWidget.cxx b/Modules/Wrappers/QtWidget/test/otbWrapperQtWidgetShowWidget.cxx
index 21067b3270..c19a43065b 100644
--- a/Modules/Wrappers/QtWidget/test/otbWrapperQtWidgetShowWidget.cxx
+++ b/Modules/Wrappers/QtWidget/test/otbWrapperQtWidgetShowWidget.cxx
@@ -104,6 +104,8 @@ int otbWrapperQtWidgetShowWidget(int argc, char* argv[])
     // clean main window
     if (mainWindow) delete mainWindow;
     }
+
+  ApplicationRegistry::CleanRegistry();
   
   if (result)
     {
-- 
GitLab