]> SALOME platform Git repositories - modules/visu.git/commitdiff
Salome HOME
PR: Multi Thread and Mutex Qt
authorprascle <prascle>
Mon, 26 Jan 2004 16:40:25 +0000 (16:40 +0000)
committerprascle <prascle>
Mon, 26 Jan 2004 16:40:25 +0000 (16:40 +0000)
src/VISU_I/VISUConfig.cc
src/VISU_I/VISUConfig.hh
src/VISU_I/VISU_Gen_i.cc
src/VISU_I/VISU_ViewManager_i.cc

index e23f6210ab91112f01536dfd69be931878ce7920..4b8567ab03ba05cca89e7822e371f33496a187c8 100644 (file)
@@ -51,34 +51,34 @@ namespace VISU{
   }
 
   //===========================================================================
-  static int mySCnt = 0;
-  static int myQCnt = 0;
-  static int myIsBatchMode = 0;
+//   static int mySCnt = 0;
+//   static int myQCnt = 0;
+//   static int myIsBatchMode = 0;
 
-  Mutex::Mutex(QMutex* theMutex, QApplication* theQApp, int theDelay) :
-    myQApp(theQApp), isQAppLocked(theQApp->locked()), myDelay(theDelay),
-    myMutex(theMutex), isSessionLocked(theMutex->locked())
-  {
-    if(MYDEBUG) MESSAGE("Mutex::Mutex : "<<(!isQAppLocked && !myQCnt)<<" "<<(!isSessionLocked && !mySCnt));
-    if(!myIsBatchMode && isQAppLocked) myIsBatchMode++;
-    if(!isSessionLocked && !mySCnt) { myMutex->lock();}; mySCnt++;
-    if(!isQAppLocked && !myQCnt) { 
-      myQApp->lock(); 
-      myQApp->syncX();
-    };
-    myQCnt++;
-  }
-  Mutex::~Mutex(){
-    myQCnt--; 
-    if(!isQAppLocked && !myQCnt) { 
-      myQApp->flushX(); 
-      //if(myDelay > 0)
-       myQApp->processEvents(myDelay+3);
-      myQApp->unlock();
-    }
-    mySCnt--; if(!isSessionLocked && !mySCnt) { myMutex->unlock();}
-    if(MYDEBUG) MESSAGE("Mutex::~Mutex : "<<(!isQAppLocked && !myQCnt)<<" "<<(!isSessionLocked && !mySCnt));
-  }
+//   Mutex::Mutex(QMutex* theMutex, QApplication* theQApp, int theDelay) :
+//     myQApp(theQApp), isQAppLocked(theQApp->locked()), myDelay(theDelay),
+//     myMutex(theMutex), isSessionLocked(theMutex->locked())
+//   {
+//     if(MYDEBUG) MESSAGE("Mutex::Mutex : "<<(!isQAppLocked && !myQCnt)<<" "<<(!isSessionLocked && !mySCnt));
+//     if(!myIsBatchMode && isQAppLocked) myIsBatchMode++;
+//     if(!isSessionLocked && !mySCnt) { myMutex->lock();}; mySCnt++;
+//     if(!isQAppLocked && !myQCnt) { 
+//       myQApp->lock(); 
+//       myQApp->syncX();
+//     };
+//     myQCnt++;
+//   }
+//   Mutex::~Mutex(){
+//     myQCnt--; 
+//     if(!isQAppLocked && !myQCnt) { 
+//       myQApp->flushX(); 
+//       //if(myDelay > 0)
+//     myQApp->processEvents(myDelay+3);
+//       myQApp->unlock();
+//     }
+//     mySCnt--; if(!isSessionLocked && !mySCnt) { myMutex->unlock();}
+//     if(MYDEBUG) MESSAGE("Mutex::~Mutex : "<<(!isQAppLocked && !myQCnt)<<" "<<(!isSessionLocked && !mySCnt));
+//   }
 
 
   //===========================================================================
index 68f5d16c9c7dccecc80d8dfdf3eaadb1ba8bb4dc..a49c4b1679cda0c89e8be552ebe63acc410aa4b2 100644 (file)
@@ -45,6 +45,7 @@
 #include "SALOME_NamingService.hxx"
 #include "SALOME_LifeCycleCORBA.hxx"
 #include "Utils_CorbaException.hxx"
+#include "SALOMEGUI_VisuMutex.hxx"
 #include "utilities.h"
 
 #include <stdexcept>
@@ -78,14 +79,14 @@ namespace VISU{
 
 
   //===========================================================================
-  class Mutex{
-    QMutex* myMutex;
-    QApplication* myQApp;
-    int isQAppLocked, isSessionLocked, myDelay;
-  public:
-    Mutex(QMutex* theMutex, QApplication* theQApp, int theDelay = 0);
-    ~Mutex();
-  };
+//   class Mutex{
+//     QMutex* myMutex;
+//     QApplication* myQApp;
+//     int isQAppLocked, isSessionLocked, myDelay;
+//   public:
+//     Mutex(QMutex* theMutex, QApplication* theQApp, int theDelay = 0);
+//     ~Mutex();
+//   };
 
 
   //===========================================================================
index f64209251c350ff67f205c47db7f03dbdbbf5100..61d85b138f31019465af25a7ae5f0fa67c7df1bc 100644 (file)
@@ -393,7 +393,7 @@ namespace VISU{
     //omni_mutex_lock aMutexLock(aMutex);
     if(MYDEBUG) MESSAGE("VISU_Gen_i::GetViewManager : "<<myMutex);
     if(myMutex){
-      Mutex mt(myMutex,qApp);
+      SMutex mt(myMutex,qApp);
       ViewManager_i * aViewManager = new ViewManager_i(myStudyDocument);
       return ViewManager::_duplicate(aViewManager->_this());
     }
index 1035f51fbacc903f6230498966482ff7f912a986..6c955c4179cf23d0fde9e59afa21e990f61ea2e6 100644 (file)
@@ -235,7 +235,7 @@ namespace VISU{
   */
   ViewManager_i::ViewManager_i(SALOMEDS::Study_ptr theStudy) {
     if(MYDEBUG) MESSAGE("ViewManager_i::ViewManager_i");
-    Mutex mt(myMutex,qApp,MYDELAY);
+    SMutex mt(myMutex,qApp,MYDELAY);
     myStudyDocument = SALOMEDS::Study::_duplicate(theStudy);
     //TViewManager* aTViewManager = new TViewManager(theStudy);
     //aTViewManager->start();
@@ -252,7 +252,7 @@ namespace VISU{
 
 
   VISU::View3D_ptr ViewManager_i::Create3DView(){
-    Mutex mt(myMutex,qApp,MYDELAY);
+    //Mutex mt(myMutex,qApp,MYDELAY);
     if(MYDEBUG) MESSAGE("ViewManager_i::Create3DView");
     VISU::View3D_i* pView = new View3D_i(myStudyDocument);
     if(pView->Create(1) != NULL) 
@@ -324,6 +324,8 @@ namespace VISU{
 
   void ViewManager_i::ProcessEvents() {
     while (true) {
+      MESSAGE("--- must never be called ! ---");
+      ASSERT(0);
       qApp->lock();
       qApp->syncX();
       qApp->flushX();