X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSALOME_PYQT%2FSALOME_PYQT_GUI%2FSALOME_PYQT_Module.cxx;h=4b73279a700c3c34c38c8323852d078342d20d0c;hb=6516e549128fb08e3cc3ae16bddea0345e083d24;hp=482060181055b430c0f389653b573489b66b77fa;hpb=034a705024b224972c148e1e3834c5ee38df184b;p=modules%2Fgui.git diff --git a/src/SALOME_PYQT/SALOME_PYQT_GUI/SALOME_PYQT_Module.cxx b/src/SALOME_PYQT/SALOME_PYQT_GUI/SALOME_PYQT_Module.cxx index 482060181..4b73279a7 100644 --- a/src/SALOME_PYQT/SALOME_PYQT_GUI/SALOME_PYQT_Module.cxx +++ b/src/SALOME_PYQT/SALOME_PYQT_GUI/SALOME_PYQT_Module.cxx @@ -29,6 +29,8 @@ #include #include +#include + // // NB: Python requests. // General rule for Python requests created by Python-based GUI modules @@ -64,14 +66,13 @@ PyMODINIT_FUNC INIT_FUNCTION(); extern "C" { SALOME_PYQT_EXPORT CAM_Module* createModule() { - static bool alreadyInitialized = false; + QCoreApplication* app = QCoreApplication::instance(); + bool alreadyInitialized = app && app->property( "salome_pyqt_gui_light_initialized" ).toBool(); if ( !alreadyInitialized ) { - // call only once (see comment above) ! - PyEval_RestoreThread( KERNEL_PYTHON::_gtstate); + PyLockWrapper lck; // GIL acquisition INIT_FUNCTION(); - PyEval_ReleaseThread( KERNEL_PYTHON::_gtstate); - alreadyInitialized = !alreadyInitialized; + if ( app ) app->setProperty( "salome_pyqt_gui_light_initialized", true ); } return new SALOME_PYQT_Module();