Index: trunk/SophyaPI/PIext/basexecut.cc
===================================================================
--- trunk/SophyaPI/PIext/basexecut.cc	(revision 2492)
+++ trunk/SophyaPI/PIext/basexecut.cc	(revision 2494)
@@ -66,6 +66,10 @@
   nx = ny = 1;
   nx = atoi(tokens[0].c_str());    ny = atoi(tokens[1].c_str());
-  if (mImgApp) mImgApp->SetZone(nx, ny);
-  }  
+  if (mImgApp) { 
+    mImgApp->LockMutex();  // <ZThread> global event loop synchronisation 
+    mImgApp->SetZone(nx, ny);
+    mImgApp->UnlockMutex(true);  // <ZThread> global event loop synchronisation 
+  }
+}  
 else if (kw == "newwin") {
   int nx=1, ny=1;
@@ -78,7 +82,15 @@
     sy = atoi(tokens[3].c_str());
   }
-  if (mImgApp) mImgApp->CreateGraphWin(nx, ny, sx, sy);
+  if (mImgApp) { 
+    mImgApp->LockMutex();   // <ZThread> global event loop synchronisation 
+    mImgApp->CreateGraphWin(nx, ny, sx, sy);
+    mImgApp->UnlockMutex(true); // <ZThread> global event loop synchronisation 
+  }
 }  
-else if (kw == "stacknext") mImgApp->StackWinNext(); 
+else if (kw == "stacknext") { 
+  mImgApp->LockMutex();  // <ZThread> global event loop synchronisation 
+  mImgApp->StackWinNext(); 
+  mImgApp->UnlockMutex(true);  // <ZThread> global event loop synchronisation 
+}
 else if (kw == "graphicatt") {
   if (tokens.size() < 1) { cout << "Usage: graphicatt attributes_list (att=def->defaut)" << endl;  return(0); }
@@ -296,7 +308,9 @@
 // utilise donc des DlFunction  (Reza 20/08/98)  voir commentaire ds .h (pb g++)
   DlUserProcFunction fuf = (DlUserProcFunction)(*it).second;
+/*DEL----- Plus besoin en multi-thread ? / Reza 06/01/2004 
 //   On redirige la sortie sur le terminal 
   bool red = mImgApp->HasRedirectedStdOutErr();
   mImgApp->RedirectStdOutErr(false);
+                                    --------DEL  */
 #ifdef SANS_EVOLPLANCK
   TRY {
@@ -326,5 +340,7 @@
   }
 #endif
+/*DEL----- Plus besoin en multi-thread ? / Reza 06/01/2004 
   mImgApp->RedirectStdOutErr(red);
+                                    --------DEL    */
 }
 
Index: trunk/SophyaPI/PIext/piacmd.cc
===================================================================
--- trunk/SophyaPI/PIext/piacmd.cc	(revision 2492)
+++ trunk/SophyaPI/PIext/piacmd.cc	(revision 2494)
@@ -218,5 +218,4 @@
 void PIACmd::run()
 {
-  cout << " DBG-PIACmd::run() -- DEBUT " << endl;
   while (!fg_thrstop) {
     mutx_inps.lock();
Index: trunk/SophyaPI/PIext/pistdimgapp.cc
===================================================================
--- trunk/SophyaPI/PIext/pistdimgapp.cc	(revision 2492)
+++ trunk/SophyaPI/PIext/pistdimgapp.cc	(revision 2494)
@@ -408,5 +408,8 @@
     while (!_fgstop) {
       usleep(2000);
-      _app->getMutex().broadcast();
+      _app->LockMutex();
+      bool fgb = false;
+      if (_app->CheckPendingEvents() != 0)  fgb = true;
+      _app->UnlockMutex(fgb);
     }
   }
@@ -415,4 +418,10 @@
   bool _fgstop;
 };
+
+int PIStdImgApp::CheckPendingEvents()
+{
+  return XtAppPending(*_appctx);
+}
+
 /* --Methode-- */
 void PIStdImgApp::Run()
@@ -421,4 +430,5 @@
 int szx, szy, szf;
 XtAppContext * appctx = PIXtAppCtx(szx, szy, szf);
+_appctx = appctx;   // Pour CheckPendingEvents()
 // Pour appeler FinishCreate() des objets dans la fenetre principale 
 if (mStop) { // C'est la premiere fois
Index: trunk/SophyaPI/PIext/pistdimgapp.h
===================================================================
--- trunk/SophyaPI/PIext/pistdimgapp.h	(revision 2492)
+++ trunk/SophyaPI/PIext/pistdimgapp.h	(revision 2494)
@@ -60,6 +60,7 @@
      inline void       LockMutex() { thr_glsyn.lock(); }
      inline void       UnlockMutex(bool fgbr=false) 
-        { thr_glsyn.broadcast(); thr_glsyn.unlock(); }
+        { if (fgbr) thr_glsyn.broadcast(); thr_glsyn.unlock(); }
      inline bool       isGlSyncLocked() { return fg_glsynlock; }
+     int               CheckPendingEvents();
 
   // Methodes d'Affichage generique
@@ -240,4 +241,5 @@
     ZMutex thr_glsyn;
     bool fg_glsynlock;  // true: thr_glsyn locke pour traitement evts
+    XtAppContext * _appctx; // Pour CheckPendingEvents()  $CHECK$ A supprimer si possible ...
 };
 
Index: trunk/SophyaPI/PIext/servnobjm.cc
===================================================================
--- trunk/SophyaPI/PIext/servnobjm.cc	(revision 2492)
+++ trunk/SophyaPI/PIext/servnobjm.cc	(revision 2494)
@@ -441,6 +441,6 @@
   return;
   }
-nt->Show();
-nt->Print(0,10);
+//DBG nt->Show();
+//DBG nt->Print(0,10);
 PINTuple3D* pin = new PINTuple3D(nt, true);
 pin->SelectXYZ(ntn[0], ntn[1], ntn[2]);
