Changeset 2755 in Sophya for trunk/SophyaPI/PIext/cxxexecutor.cc


Ignore:
Timestamp:
May 23, 2005, 6:33:02 PM (20 years ago)
Author:
ansari
Message:

1/ Correction bug trace des lignes ds PINTuple
2/ Ajout methode IsThreadable() (declaration conformite thread separe pour certaines commandes) ds baseexecut.h .cc (plot2d plot3d ...) , ds pawexecut.cc (n/plot ...) et ds cxxexecutor.h .cc (c++exec c++execfrf ...)
3/ Ajout de ZMutex (et ZSync) pour la gestion des commandes threadable - ds les
executeurs et ds servnobjm.h .cc
4/ bug d'execution en thread identifie et corrige ds nobjmgr.h .cc (ajout des
methodes GetObj_P() GetObjAdapter_P() et ReadObj_P()
5/ Ajout de l'appel a ZSync::NOp() pour eviter les warnings 'unused variable zs ...'

Reza 23 Mai 2005

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/SophyaPI/PIext/cxxexecutor.cc

    r2616 r2755  
    155155    return(1);
    156156  }
     157  // Pour synchronisation d'execution simultanee
     158  ZSync zs(mutx_cxxe, 2);  zs.NOp(); // 2 -> broadcast lors de la destruction
     159
    157160  rc = ExecuteCXX(toks); if(rc) return(1);
    158161
     
    162165    return(1);
    163166  }
     167  // Pour synchronisation d'execution simultanee
     168  ZSync zs(mutx_cxxe, 2);  zs.NOp(); // 2 -> broadcast lors de la destruction
     169
    164170  rc = FillUserCode(tokens[0]); if(rc) return(1);
    165171  if(tokens.size()>1) rc = FillUserFctFrF(tokens[1]);
     
    181187    return(1);
    182188  }
     189  // Pour synchronisation d'execution simultanee
     190  ZSync zs(mutx_cxxe, 2);  zs.NOp(); // 2 -> broadcast lors de la destruction
     191
    183192  rc = FillUserCode(toks,2);        if(rc) return(1);
    184193  rc = FillUserFctFrS();            if(rc) return(1);
     
    190199    return(1);
    191200  }
     201  // Pour synchronisation d'execution simultanee
     202  ZSync zs(mutx_cxxe, 2);  zs.NOp(); // 2 -> broadcast lors de la destruction
     203
    192204  rc = FillUserCode(tokens[2]); if(rc) return(1);
    193205  if(tokens.size()>3) rc = FillUserFctFrF(tokens[3]);
     
    197209
    198210} else if(kw == "c++compile") {
     211  // Pour synchronisation d'execution simultanee
     212  ZSync zs(mutx_cxxe, 2);  zs.NOp(); // 2 -> broadcast lors de la destruction
     213
    199214  if(tokens.size()>=1) rc = Compile(tokens[0]);
    200215  else                 rc = Compile();
     
    202217
    203218} else if(kw == "c++link") {
     219  // Pour synchronisation d'execution simultanee
     220  ZSync zs(mutx_cxxe, 2);  zs.NOp(); // 2 -> broadcast lors de la destruction
     221
    204222  if(tokens.size()>=2)      rc = Link(tokens[0],tokens[1]);
    205223  else if(tokens.size()>=1) rc = Link(tokens[0]);
     
    262280
    263281return(0);
     282}
     283
     284/* --Methode-- */
     285bool  CxxExecutor::IsThreadable(string const & kw)
     286{
     287if ( (kw == "c++exec") || (kw == "c++execfrf") ||
     288     (kw == "c++create") || (kw == "c++createfrf") ||
     289     (kw == "c++compile") || (kw == "c++link") )   return true;
     290else return false;
    264291}
    265292
Note: See TracChangeset for help on using the changeset viewer.