Index: trunk/SophyaLib/SysTools/cexpre.cc
===================================================================
--- trunk/SophyaLib/SysTools/cexpre.cc	(revision 2597)
+++ trunk/SophyaLib/SysTools/cexpre.cc	(revision 2598)
@@ -68,4 +68,10 @@
 //---------------------------------------------------------
 //-----------  Expression changement de signe -------------
+/*! 
+  \internal 
+  \ingroup SysTools
+  \brief Class for handling change sign expression (-x)
+  \sa CExpressionEvaluator
+*/
 class CE_ChsExp : public CExprBase {
 public:
@@ -80,4 +86,10 @@
 
 //---------------------------------------------------------
+/*! 
+  \internal 
+  \ingroup SysTools
+  \brief Base class for binary operations on expressions
+  \sa CExpressionEvaluator
+*/
 class CE_BinExp : public CExprBase {
 public:
@@ -119,4 +131,10 @@
 
 //---------------------------------------------------------
+/*! 
+  \internal 
+  \ingroup SysTools
+  \brief Addition of two CExprBase (binary operation : x+y)
+  \sa CExpressionEvaluator
+*/
 class CE_AddExp : public CE_BinExp {
 public:
@@ -125,4 +143,10 @@
  }
 };
+/*! 
+  \internal 
+  \ingroup SysTools
+  \brief Multiplication of two CExprBase (binary operation : x*y)
+  \sa CExpressionEvaluator
+*/
 class CE_MulExp : public CE_BinExp {
 public:
@@ -130,4 +154,10 @@
   virtual double Evaluate() const { CheckThrow("CE_MulExp::Evaluate"); return _e1->Evaluate()*_e2->Evaluate(); }
 };
+/*! 
+  \internal 
+  \ingroup SysTools
+  \brief Subtraction of two CExprBase (binary operation : x-y)
+  \sa CExpressionEvaluator
+*/
 class CE_SubExp : public CE_BinExp {
 public:
@@ -135,4 +165,10 @@
   virtual double Evaluate() const { CheckThrow("CE_SubExp::Evaluate"); return _e1->Evaluate()-_e2->Evaluate(); }
 };
+/*! 
+  \internal 
+  \ingroup SysTools
+  \brief Division of two CExprBase (binary operation : x/y)
+  \sa CExpressionEvaluator
+*/
 class CE_DivExp : public CE_BinExp {
 public:
@@ -149,4 +185,10 @@
 //---------------------------------------------------------
 #define FMXARG 3
+/*! 
+  \internal 
+  \ingroup SysTools
+  \brief Function evaluation on other expression in the form f(), f(x), f(x,y), f(x,y,z)
+  \sa CExpressionEvaluator
+*/
 class CE_FuncExp : public CExprBase {
 public:
@@ -169,7 +211,7 @@
 
 // Les fonctions de generation de nombre aleatoire
-double _CE_rand01() { return drand01(); }
-double _CE_randpm1() { return drandpm1(); }
-double _CE_gaurand() { return GauRnd(0., 1.); }
+static double _CE_rand01() { return drand01(); }
+static double _CE_randpm1() { return drandpm1(); }
+static double _CE_gaurand() { return GauRnd(0., 1.); }
 //---------------------------------------------------------
 CE_FuncExp::CE_FuncExp(string const & func)
@@ -265,4 +307,42 @@
 
 //---------------------------------------------------------
+/*!
+  \class CExpressionEvaluator
+  \ingroup SysTools
+  \brief Class for evaluation of arithmetic expressions with C-like syntax.
+
+  This classes can handle the parsing of c-like arithmetic
+  expressions containing numerical constants, the four 
+  basic operations (addition +, subtraction -, multiplication *,
+  division /) and functions.
+  The numerical constants are also defined <tt> (Pi = M_PI E = M_E) </tt>.
+  The following functions from the standard math library and 
+  random generators are available:
+  
+  - sqrt fabs floor hypot
+  - exp log log10 pow 
+  - sin cos tan asin acos atan atan2
+  - sinh cosh tanh
+  - rand01() : Flat random number generator in the range [0 1]
+  - randpm1() : Flat random number generator in the range [-1 1]
+  - gaurand() : Gaussian random number generator (m=0, sigma=1)
+
+  Usage example : 
+  \code
+  #include "cexpre.h"
+  ...
+  string es = "4.+3*(cos(Pi/8.)+1.5)";
+  CExpressionEvaluator e(es);
+  cout << " Expression: " << e << " = " << e.Evaluate() << endl;
+  \endcode
+
+  Output : \n
+  <tt>  Expression: (4+(3*(cos((3.14159/8))+1.5))) = 11.2716 </tt>
+*/
+
+/*! 
+  Parse the string \c sex and builds an expression.
+  Can throw CExprException exception.
+*/
 CExpressionEvaluator::CExpressionEvaluator(string const & sex)
 {
@@ -293,5 +373,5 @@
 
 // cette fonction rearrange le stack des operations binaires en attente
-CExprBase* Arrange_CE_BinExpStack(stack<CE_BinExp* >& sbx, CExprBase* cex, CE_BinExp* nbx)
+static CExprBase* Arrange_CE_BinExpStack(stack<CE_BinExp* >& sbx, CExprBase* cex, CE_BinExp* nbx)
 {
   while ( !sbx.empty() && (nbx->Priority() <= sbx.top()->Priority()) ) {
@@ -305,5 +385,5 @@
 
 // cette fonction rearrange le stack des operations binaires en attente
-CExprBase* Arrange_CE_BinExpStack(stack<CE_BinExp* >& sbx, CExprBase* cex)
+static CExprBase* Arrange_CE_BinExpStack(stack<CE_BinExp* >& sbx, CExprBase* cex)
 {
   if (sbx.empty())  return cex;
Index: trunk/SophyaLib/SysTools/cexpre.h
===================================================================
--- trunk/SophyaLib/SysTools/cexpre.h	(revision 2597)
+++ trunk/SophyaLib/SysTools/cexpre.h	(revision 2598)
@@ -14,5 +14,8 @@
 namespace SOPHYA {
 
-//! Exception class used by  CExpressionEvaluator
+/*! 
+  \ingroup SysTools
+  \brief Exception class used by  CExpressionEvaluator
+*/
 class CExprException : public PException {
   public:
@@ -22,5 +25,9 @@
 
 //--------------------------------------------------------------------
-//! Base class for arithmetic expressions used by CExpressionEvaluator
+/*! 
+  \ingroup SysTools
+  \brief Base class for arithmetic expressions used by CExpressionEvaluator
+  \sa CExpressionEvaluator
+*/
 class CExprBase {
 public:
@@ -39,4 +46,8 @@
 };
 
+/*! 
+  \ingroup SysTools
+  \brief For formatted write (print) of expressions in a stream
+*/
 inline ostream& operator << (ostream& s, CExprBase const & ex)
   {  ex.Print(s);  return(s);  }
@@ -45,14 +56,17 @@
 class CE_FuncExp;
 //---------------------------------------------------------
-//! Class for evaluation of arithmetic expressions with C-like syntax
 class CExpressionEvaluator : public CExprBase {
 public:
   CExpressionEvaluator(string const & sex);
   virtual ~CExpressionEvaluator();
+//! Evaluate the expression and returns the corresponding value.
   virtual double Evaluate() const;
+//! Alias for Evaluate()
   inline double Value() const { return Evaluate(); }
+//! Formatted output on a stream
   virtual void  Print(ostream& os) const;
 
 protected:
+//! Does the parsing and builds an CExprBase object.
   CExprBase* ParseString(int extype, string fname, string const & sex, 
 		    size_t off, size_t& stop, string& errmsg);
Index: trunk/SophyaLib/SysTools/commander.cc
===================================================================
--- trunk/SophyaLib/SysTools/commander.cc	(revision 2597)
+++ trunk/SophyaLib/SysTools/commander.cc	(revision 2598)
@@ -25,7 +25,8 @@
 // ------------------------------------------------------------
 /*!
+  \internal
   \class SOPHYA::CommanderBloc
   \ingroup SysTools 
-  Class for internal use by SOPHYA::Commander to handle loops
+  Class for internal use by class Commander to handle loops
 */
 class CommanderBloc {
@@ -253,7 +254,8 @@
 
 /*!
+  \internal 
   \class SOPHYA::CommanderScript
   \ingroup SysTools 
-  Class for internal use by SOPHYA::Commander to handle functions
+  Class for internal use by class Commander to handle functions
   or scripts
 */
@@ -334,9 +336,33 @@
 
 /*!
-  \class SOPHYA::Commander
+  \class Commander
   \ingroup SysTools
-  Simple command interpreter with c-shell like syntax and dynamic 
-  load capabilities. Can be used to add scripting capabilities
-  to applications
+  \brief Simple command interpreter
+
+  This Simple command interpreter with c-shell like syntax 
+  can be used to add scripting capabilities
+  to applications. 
+
+  Although the insterpreter has many limitations compared to 
+  c-shell, or Tcl , it provides some interesting possibilities:
+
+  - Extended arithmetic operations (c-like and RPN)
+  - Simple and vector variables
+  - Script definition 
+  - Dynamic Load 
+
+  \sa CmdExecutor CExpressionEvaluator RPNExpressionEvaluator
+
+  Usage example:
+  \code
+  #include "commander.h"
+  ...
+  Commander cmd;
+  char* ss[3] = {"foreach f ( AA bbb CCCC ddddd )", "echo $f" , "end"};
+  for(int k=0; k<3; k++) {
+    string line = ss[k];
+    cmd.Interpret(line);
+  }
+  \endcode
 */
 
@@ -345,4 +371,5 @@
 static Commander* cur_commander = NULL;
 /* --Methode-- */
+//! Default constructor. Initializes variable list and copies \c history.pic to \c hisold.pic
 Commander::Commander()
 {
@@ -488,4 +515,5 @@
 
 /* --Methode-- */
+//! Returns the string \c Commander as the interpreter's name.
 string Commander::Name()
 {
@@ -494,4 +522,5 @@
 
 /* --Methode-- */
+//! Add the \b grp help group with description \b desc. 
 void Commander::AddHelpGroup(string& grp, string& desc)
 {
@@ -501,4 +530,12 @@
 
 /* --Methode-- */
+/*! 
+  \brief Register a command executor associated with a given keyword.
+  \param keyw : keyword identifying the command
+  \param usage : the command help and usage information
+  \param ce : CmdExecutor pointer for this a command. The same object can be registered
+  multiple time for different commands.
+  \param grp : The help group corresponding to this command.
+*/
 void Commander::RegisterCommand(string& keyw, string& usage, CmdExecutor * ce, string& grp)
 {
@@ -517,4 +554,10 @@
 
 /* --Methode-- */
+/*! 
+  \brief Register a help text.
+  \param keyw : help keyword
+  \param usage : help text
+  \param grp : help group
+*/
 void Commander::RegisterHelp(string& keyw, string& usage, string& grp)
 {
@@ -548,4 +591,19 @@
 
 /* --Methode-- */
+/*!
+  \brief  Dynamic loader for modules
+
+  A module is a shared library extending the application functionalities.
+  Typically, a module adds new commands to the interpreter. Once loaded,
+  the module is activated (initialized) by calling a function with the 
+  name \b modulename_init . This function should be declared extern C
+  to avoid C++ name mangling. A cleanup function \b modulename_end
+  is called by the Commander destructor.
+
+  \param fnameso : Shared library name containing the module functions
+  and classes.
+  \param name : Module name. This string is used to form module 
+  initializer and cleanup function name \c name_init \c name_end
+*/
 void Commander::LoadModule(string& fnameso, string& name)
 {
@@ -569,4 +627,5 @@
 
 /* --Methode-- */
+//! Declare a new interpreter
 void Commander::AddInterpreter(CmdInterpreter * cl)
 {
@@ -575,4 +634,5 @@
 
 /* --Methode-- */
+//! Select an interpreter by its name. The corresponding Interpret method is then called
 void Commander::SelInterpreter(string& name)
 {
@@ -594,4 +654,7 @@
 
 /* --Methode-- */
+/*!
+  \brief Method which has to be invoked to interpret a giev command line or string.
+*/
 int Commander::Interpret(string& s)
 {
@@ -1894,4 +1957,5 @@
 
 /* --Methode-- */
+//! Produces a LaTeX file containing the registered command helps
 void Commander::HelptoLaTeX(string const & fname)
 {
Index: trunk/SophyaLib/SysTools/commander.h
===================================================================
--- trunk/SophyaLib/SysTools/commander.h	(revision 2597)
+++ trunk/SophyaLib/SysTools/commander.h	(revision 2598)
@@ -27,14 +27,24 @@
 // Classe definissant l'interface pour un interpreteur de commande
 
-//! Interface definition for a generic command interpreter
+/*!
+  \ingroup SysTools
+  \brief  Interface definition for a generic command interpreter.
+*/
 class CmdInterpreter {
 public:
   virtual		~CmdInterpreter() {} ;
+//! Returns the interpreter's name
   virtual string	Name()=0;
+//! Method to be called in order to interpret a line or string.
   virtual int		Interpret(string& line)=0;
 };
 
 
-//! Interface definition for command executor, to be used with SOPHYA::Commander
+/*!
+  \ingroup SysTools
+  \brief Interface definition for command executor, to be used with Commander
+
+  A command is defined by a keyword and a number of argument
+*/
 
 class CmdExecutor {
@@ -159,5 +169,7 @@
 
 // Pour enregistrer la liste de commandes et leurs executeurs et le help
+//! Command executor registration - For Commander internal use
   struct cmdex {int group; string us; CmdExecutor * cex; } ;
+//! Help text registration - For Commander internal use
   struct hgrpst {int gid; string desc; } ;               // Identification+description d'un groupe de help
   typedef map<string, hgrpst, less<string> > CmdHGroup;   // Liste des groupes de commandes
Index: trunk/SophyaLib/SysTools/ctimer.cc
===================================================================
--- trunk/SophyaLib/SysTools/ctimer.cc	(revision 2597)
+++ trunk/SophyaLib/SysTools/ctimer.cc	(revision 2598)
@@ -1,4 +1,4 @@
 //
-// $Id: ctimer.cc,v 1.4 2000-04-13 15:58:37 ansari Exp $
+// $Id: ctimer.cc,v 1.5 2004-08-11 13:10:25 ansari Exp $
 //
 
@@ -40,4 +40,5 @@
   \class SOPHYA::Timer
   \ingroup SysTools
+  \brief Simple chronometer for CPU and elapsed time measurements.
   This class implements a simple chronometer which can be used for
   measuring the CPU and elapsed time in functions. The constructor
Index: trunk/SophyaLib/SysTools/cxxcmplnk.cc
===================================================================
--- trunk/SophyaLib/SysTools/cxxcmplnk.cc	(revision 2597)
+++ trunk/SophyaLib/SysTools/cxxcmplnk.cc	(revision 2598)
@@ -10,7 +10,14 @@
   This classes handles the compilation of a C++ source code and 
   building of a shared library.
-  The present version has been adapted for different compilers:
-  g++ , Compaq/Digital cxx , SGI CC , KCC .
+  The present version has been adapted for different compilers and 
+  systems:
+  - Linux-g++
+  - Linux-KCC
+  - MacOS X/Darwin (Apple OS X 10.2 and 10.3)
+  - OSF-cxx : (HP/Compaq/Digital OSF-Tru64 and cxx c++ compiler)
+  - SGI-CC : Silicon Graphics system and C++ compiler
+
   \sa SOPHYA::PDynLinkMgr
+
   \code
   #include "cxxcmplnk.h"
Index: trunk/SophyaLib/SysTools/pdlmgr.cc
===================================================================
--- trunk/SophyaLib/SysTools/pdlmgr.cc	(revision 2597)
+++ trunk/SophyaLib/SysTools/pdlmgr.cc	(revision 2598)
@@ -26,6 +26,9 @@
   This classes handles the run-time operations related to using shared
   libraries. The present version has been adapted for different Unix 
-  flavours (Linux, Compaq/Digital Unix, SGI IRIX, IBM AIX, Sun Solaris,
-  MacOS X/Darwin).
+  flavours (Linux, HP/Compaq/Digital OSF-Tru64, SGI IRIX, IBM AIX, Sun Solaris,
+  MacOS X/Darwin). \n
+  For MacOS X/Darwin, the NSxxx API 
+  <tt> (NSLinkModule , NSCreateObjectFileImageFromFile, ...) </tt> 
+  is used.
   The example here shows the linking of shared library named "mylib.so" 
   containing a function \c double \c myfunction(double x). 
Index: trunk/SophyaLib/SysTools/psighand.cc
===================================================================
--- trunk/SophyaLib/SysTools/psighand.cc	(revision 2597)
+++ trunk/SophyaLib/SysTools/psighand.cc	(revision 2598)
@@ -13,4 +13,6 @@
 /* Nouvelle-Fonction */
 /*!\ingroup  SysTools 
+   \brief Utility function for signal handling configuration.
+
    Configures signal handling. When the flag is true, an exception 
    \b CaughtSignalExc is thrown with the excpetion id set to the 
Index: trunk/SophyaLib/SysTools/resusage.cc
===================================================================
--- trunk/SophyaLib/SysTools/resusage.cc	(revision 2597)
+++ trunk/SophyaLib/SysTools/resusage.cc	(revision 2598)
@@ -37,4 +37,7 @@
   Constructor. the \b Update() method is called.
   \param pg: Process group RU_Self or RU_Children or RU_All
+  - pg = RU_Self : Resource usage for the process itself
+  - pg = RU_Children : Resource usage for the child processes
+  - pg = RU_All : resource usage for the process itself and its child processes
 */
 ResourceUsage::ResourceUsage(RU_ProcGrp pg)
Index: trunk/SophyaLib/SysTools/resusage.h
===================================================================
--- trunk/SophyaLib/SysTools/resusage.h	(revision 2597)
+++ trunk/SophyaLib/SysTools/resusage.h	(revision 2598)
@@ -17,8 +17,11 @@
 {
 public:
+/*!
+  - RU_Self : Resource usage for the process itself
+  - RU_Children : Resource usage for the child processes
+  - RU_All : resource usage for the process itself and its child processes
+*/
   enum RU_ProcGrp {RU_Self=0, RU_Children=1, RU_All=2};
-  // RU_Self: Resource usage for the process itself
-  // RU_Children: Resource usage for the child processes
-  // RU_All: Process itself and child processes
+
   ResourceUsage(RU_ProcGrp pg=RU_Self);
   ~ResourceUsage();
Index: trunk/SophyaLib/SysTools/rpneval.cc
===================================================================
--- trunk/SophyaLib/SysTools/rpneval.cc	(revision 2597)
+++ trunk/SophyaLib/SysTools/rpneval.cc	(revision 2598)
@@ -10,12 +10,57 @@
 
 /*!
-  \class SOPHYA::RPNExpressionEvaluator
+  \class RPNExpressionEvaluator
   \ingroup SysTools
   Arithmetic expression (double precision float) evaluator 
   in Reverse Polish Notation (RPN). This is an HP calculator 
   like syntax. Space are used for separating the string 
-  expression into tokens. 
+  expression into tokens. \n
+  The string parsed by RPNExpressionEvaluator should be 
+  formed by a set of space separated words. Each word may be
+  a numerical constant or operation or function. 
+  All numeriacl constants are pushed to stack top. 
+  The stack is limited only
+  by the available memory. The three numbers on the stack top
+  are referred to as <tt> x y x </tt>. \n
+  Available operations: 
+  - op= + - * / % : replace (x,y) by x.op.y 
+  - e pi : M_PI , M_E numerical constants
+  - f= sin cos tan asin acos atan : replace x by f(x)
+  - f= chs sqrt sq : (x<-f(x)) change-sign , square root and square (x<-x^2) operations 
+  - f= log log10 exp : replace x by f(x) 
+  - f= fabs floor ceiling : replace x by f(x) 
+  - f= deg2rad rad2deg : replace x by f(x) 
+  - f= rand01 randpm1 gaurand : pushes a random number on the stack top ([0 1] [-1 1] Gaussian)
+  - print x<>y pop push : stack operations
+  - sum product : Replace the complete stack by the sum / product of the numbers in the stack
+  - mean sigma : Replace the complete stack by the mean / sigma of the numbers in the stack
+
+  \sa CExpressionEvaluator Commander
+
+  The following output is produced by the sample code below:
+  \code
+  #include "rpneval.h"
+  ...
+  RPNExpressionEvaluator rpn1("4 2 print + 3 * ");
+  cout << "RPN1: 4 2 + 3 * -> rpn1.Value() = " << rpn1.Value() << endl;  
+  RPNExpressionEvaluator rpn2("1 2 3 4 5 sum");
+  cout << "RPN2: 1 2 3 4 5 sum -> rpn2.Value() = " << rpn2.Value() << endl;
+  \endcode
+
+  Output:
+  \verbatim
+  RPNExpressionEvaluator::PrintStack() Size()= 2
+      0:  2   (x) 
+      1:  4   (y) 
+  RPN1: 4 2 + 3 * -> rpn1.Value() = 18
+  RPN2: 1 2 3 4 5 sum -> rpn2.Value() = 15  
+  \endverbatim
 */
 
+/*!
+  \brief Parses the string \b sex into words and perform the specified operations on the stack.
+
+  Can throw  RPNExprException 
+*/
 RPNExpressionEvaluator::RPNExpressionEvaluator(string const & sex)
 {
@@ -33,4 +78,9 @@
 }
 
+/*! 
+  \brief Perform the operations specified by \b on the stack, starting from element \b exe[off].  
+
+  Can throw  RPNExprException 
+*/
 RPNExpressionEvaluator::RPNExpressionEvaluator(vector<string> & exe, int off)
 {
@@ -52,4 +102,5 @@
 /* Operations sur le stack RPN */
 /* --Methode-- */
+//! Return the stack top (x) 
 double RPNExpressionEvaluator::Evaluate() const
 {
Index: trunk/SophyaLib/SysTools/rpneval.h
===================================================================
--- trunk/SophyaLib/SysTools/rpneval.h	(revision 2597)
+++ trunk/SophyaLib/SysTools/rpneval.h	(revision 2598)
@@ -15,6 +15,9 @@
 namespace SOPHYA {
 
-//! Exception class used by  RPNExpressionEvaluator
-
+/*!
+  \ingroup SysTools
+  \brief Exception class used by  RPNExpressionEvaluator
+  \sa RPNExpressionEvaluator
+*/
 class RPNExprException : public PException {
   public:
@@ -30,8 +33,10 @@
   explicit RPNExpressionEvaluator(vector<string> & exe, int off=0);
   virtual ~RPNExpressionEvaluator();
+//! Return the stack top \c (x) as the result of the expression evaluation
   virtual double Evaluate() const;  // Return the value of the stack top
+//! Alias for Evaluate()
   inline double Value() const { return Evaluate(); }
 
-protected:
+private:
   int EvalRPNExpr(vector<string> & args, int off=0);
   inline bool CheckStack(double& x) const 
Index: trunk/SophyaLib/SysTools/zthread.cc
===================================================================
--- trunk/SophyaLib/SysTools/zthread.cc	(revision 2597)
+++ trunk/SophyaLib/SysTools/zthread.cc	(revision 2598)
@@ -9,4 +9,6 @@
   \class SOPHYA::ZThread
   \ingroup SysTools
+  \brief Simple class for creating and controlling threads.
+
   This class provides an interface for creating and controlling threads.
   The implementation uses the POSIX thread interface.
@@ -130,4 +132,6 @@
   \class SOPHYA::ZMutex
   \ingroup SysTools
+  \brief Wrapper for Mutex objects.
+
   This class implements an interface to the Mutual Exclusion objects
   of the POSIX threads. 
@@ -161,4 +165,6 @@
   \class SOPHYA::ZSync
   \ingroup SysTools
+  \brief Wrapper/utility class ensuring synchronised execution of an instruction bloc.
+
   This class can be used to insure that the execution of a given 
   part of the code is synchronised, i.e. only a single thread 
Index: trunk/SophyaLib/SysTools/zthread.h
===================================================================
--- trunk/SophyaLib/SysTools/zthread.h	(revision 2597)
+++ trunk/SophyaLib/SysTools/zthread.h	(revision 2598)
@@ -16,8 +16,7 @@
 
 /*!
-  \class SOPHYA::ZThreadExc
+  \class ZThreadExc
   \ingroup SysTools
-  This exception class is used by the classes implementing the interface 
-  to the POSIX threads (\b ZThread ...)
+  \brief Exception class used by ZThread and ZMutex classes.
 */  
 class ZThreadExc : public PException {
@@ -93,4 +92,12 @@
 class ZSync {
 public:
+/*!
+  Constructor. Locks the associated ZMutex. 
+  
+  - <tt> sigbr==1 </tt> destructor calls \c signal on 
+  the associated ZMutex 
+  - <tt> sigbr==2 </tt> destructor calls \c broadcast on 
+  the associated ZMutex 
+*/
   explicit inline  ZSync(ZMutex & mtx, int sigbr=0) 
   {_mtx = &mtx; _sigbr = sigbr; mtx.lock(); }
