Index: T/HEAD/doc/tbroadcast.html
===================================================================
--- /CMT/HEAD/doc/tbroadcast.html	(revision 72)
+++ 	(revision )
@@ -1,170 +1,0 @@
-<!--
-//-----------------------------------------------------------
-// Copyright Christian Arnault LAL-Orsay CNRS
-// arnault@lal.in2p3.fr
-// See the complete license in cmt_license.txt "http://www.cecill.info". 
-//-----------------------------------------------------------
--->
-
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
-<html>
-  <head>
-    <title>MultiThreaded broadcast utility</title>
-  </head>
-
-  <font face="Arial, Helvetica" color="#000000">
-
-    <body bgcolor="#ffffff" link="#550088" alink="#007777" alink="#007777">
-      <h1>MultiThreaded broadcast utility</h1>
-
-      <p>This document presents a multithreaded version of the cmt
-      broadcast facility.</p>
-
-      <p>This is a standalone program and NOT a new feature of CMT. If
-	it appears to be safe and reliable, then of course it may become
-	part of the plain CMT.</p>
-      
-      <p>This program (named tbroadcast - for "threaded broadcast")
-	basically operates very much like "cmt broadcast", ie it accepts
-	most of the same options and produces the same output.</p>
-      
-      <p>Report on the CMT mailing list your experience, bugs, comments,
-	... and measurements ! Of course the expected improvement will
-	largely depend on the type of command and on the number of
-	processors...</p>
-      
-      <hr />
-      <h2>Principle</h2>
-      
-      <blockquote>
-	
-	The use network forms a Directed Acyclic Graph [DAG] (or if
-	there are cycles, they are detected and properly handled).
-	
-	<p><b>tbroadcast</b> first gets all "leaves" of the use graph, and
-	  launches the requested command onto them in parallel in
-	  individual [POSIX]threads.</p>
-	
-	<p>Then, once all children of a non-leaf package are completed,
-	  the requested command is launched onto this non-leaf package
-	  [still in an individual thread].</p>
-	
-	<p>This is recursively repeated until all packages have been
-	  reached.</p>
-	
-	<p>At any time the number of active threads is controlled so as
-	  to never exceed a limit [set to 20 threads by default but can be
-	  modified using the <b>-threads=n</b> option]. A local scheduler
-	  maintains a queue of threads when the limit is reached.</p>
-	
-	<p>The individual thread activity consists in running the
-	  requested command - as usual - in the context of the reached
-	  package. The difference with the sequential <b>cmt broadcast</b>
-	  of course is that the output of the run is accumulated and
-	  displayed at once when every action is completed [to avoid
-	  intermixing of outputs from different threads].</p>
-	
-	<p>When one activity returns an error, the error status is
-	  propagated to its parent which will prematurely complete, but
-	  not before all other simultaneously running threads are actually
-	  completed.</p>
-	
-	<p>It's only when the threads of ALL children are completed
-	  (with success or error) that a node either starts (if all
-	  children successfully completed) or immediately terminates (if
-	  one of its children failed).</p>
-	
-      </blockquote>
-      
-      <hr />
-      
-      <h2>How to use it:</h2>
-      
-      <blockquote>
-	
-	<ul>
-	  
-	  <li> The source kit is available for Linux platforms only from CVS:
-	    
-	    <pre>
-&gt; export CVSROOT=:pserver:anonymous@cvsserver.lal.in2p3.fr:/projects/cvs
-&gt; cvs login
-[no password]
-&gt; cd /somewhere
-&gt; cvs co -d tbroadcast CMT/tbroadcast
-&gt; cd tbroadcast/cmt
-&gt; cmt config
-&gt; gmake
-            </pre>
-    
-          </li>
-    
-	  <li> The application is also available for Linux platforms
-	  at CERN:
-	    
-	    <pre>
-${CMTROOT}/../tbroadcast/v1/Linux/tbroadcast
-            </pre>
-    
-          </li>
-    
-          <li> The options are:
-      
-            <pre>
-&gt; tbroadcast [option...] [shell-command]
-
-    where option can be:
-
-      -select="&lt;selection-list&gt;"
-      -exclude="&lt;exclusion-list&gt;"
-      -begin=&lt;begin-pattern&gt;
-      -global                   Reach packages in all CMTPATH items
-      -threads=&lt;n&gt;              Change the maximum thread number [default is 20]
-
-      &lt;selection-list&gt; is a space-separated list of sub-strings that actual paths of
-                       all reached packages must match
-
-      &lt;exclusion-list&gt; is a space-separated list of sub-strings that actual paths of
-                       all reached packages must NOT match
-
-      &lt;begin-pattern&gt;  is a sub-string matching a package path for beginning the broadcast loop
-
-      -select=, -exclude=, -begin= can be combined
-
-      -select=, -exclude= can be accumulated
-
-	    </pre>
-
-	    <p>If the shell-command is omitted, the broadcast loop
-	    simply traverses the graph, reaching all packages and
-	    doing nothing. This is useful to test the traversal.</p>
-
-          </blockquote>
-
-        <hr />
-        <h2>Examples</h2>
-
-        <blockquote>
-
-          <i>This example shows how to use tbroadcast in the context of the Atlas project</i>
-
-          <pre>&gt; source setup.sh -tag=7.5.0
-&gt; cd .....dist/7.5.0/AtlasRelease/*/cmt
-&gt alias tbroadcast=$CMTROOT/../tbroadcast/v1/Linux/tbroadcast
-&gt; tbroadcast -select=/Database/
-&gt; tbroadcast -global
-&gt; tbroadcast -begin=/StoreGate/
-
-          </pre>
-
-        </blockquote>
-
-        <hr>
-    <address><a href="mailto:arnault@lal.in2p3.fr">Christian Arnault</a></address>
-<!-- Created: Fri Jan 30 12:20:51 CET 2004 -->
-<!-- hhmts start -->
-Last modified: Fri Jan 30 12:50:46 CET 2004
-<!-- hhmts end -->
-    </body>
-  </font>
-</html>
Index: /cmtsite/tbroadcast.html
===================================================================
--- /cmtsite/tbroadcast.html	(revision 73)
+++ /cmtsite/tbroadcast.html	(revision 73)
@@ -0,0 +1,170 @@
+<!--
+//-----------------------------------------------------------
+// Copyright Christian Arnault LAL-Orsay CNRS
+// arnault@lal.in2p3.fr
+// See the complete license in cmt_license.txt "http://www.cecill.info". 
+//-----------------------------------------------------------
+-->
+
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+  <head>
+    <title>MultiThreaded broadcast utility</title>
+  </head>
+
+  <font face="Arial, Helvetica" color="#000000">
+
+    <body bgcolor="#ffffff" link="#550088" alink="#007777" alink="#007777">
+      <h1>MultiThreaded broadcast utility</h1>
+
+      <p>This document presents a multithreaded version of the cmt
+      broadcast facility.</p>
+
+      <p>This is a standalone program and NOT a new feature of CMT. If
+	it appears to be safe and reliable, then of course it may become
+	part of the plain CMT.</p>
+      
+      <p>This program (named tbroadcast - for "threaded broadcast")
+	basically operates very much like "cmt broadcast", ie it accepts
+	most of the same options and produces the same output.</p>
+      
+      <p>Report on the CMT mailing list your experience, bugs, comments,
+	... and measurements ! Of course the expected improvement will
+	largely depend on the type of command and on the number of
+	processors...</p>
+      
+      <hr />
+      <h2>Principle</h2>
+      
+      <blockquote>
+	
+	The use network forms a Directed Acyclic Graph [DAG] (or if
+	there are cycles, they are detected and properly handled).
+	
+	<p><b>tbroadcast</b> first gets all "leaves" of the use graph, and
+	  launches the requested command onto them in parallel in
+	  individual [POSIX]threads.</p>
+	
+	<p>Then, once all children of a non-leaf package are completed,
+	  the requested command is launched onto this non-leaf package
+	  [still in an individual thread].</p>
+	
+	<p>This is recursively repeated until all packages have been
+	  reached.</p>
+	
+	<p>At any time the number of active threads is controlled so as
+	  to never exceed a limit [set to 20 threads by default but can be
+	  modified using the <b>-threads=n</b> option]. A local scheduler
+	  maintains a queue of threads when the limit is reached.</p>
+	
+	<p>The individual thread activity consists in running the
+	  requested command - as usual - in the context of the reached
+	  package. The difference with the sequential <b>cmt broadcast</b>
+	  of course is that the output of the run is accumulated and
+	  displayed at once when every action is completed [to avoid
+	  intermixing of outputs from different threads].</p>
+	
+	<p>When one activity returns an error, the error status is
+	  propagated to its parent which will prematurely complete, but
+	  not before all other simultaneously running threads are actually
+	  completed.</p>
+	
+	<p>It's only when the threads of ALL children are completed
+	  (with success or error) that a node either starts (if all
+	  children successfully completed) or immediately terminates (if
+	  one of its children failed).</p>
+	
+      </blockquote>
+      
+      <hr />
+      
+      <h2>How to use it:</h2>
+      
+      <blockquote>
+	
+	<ul>
+	  
+	  <li> The source kit is available for Linux platforms only from CVS:
+	    
+	    <pre>
+&gt; export CVSROOT=:pserver:anonymous@cvsserver.lal.in2p3.fr:/projects/cvs
+&gt; cvs login
+[no password]
+&gt; cd /somewhere
+&gt; cvs co -d tbroadcast CMT/tbroadcast
+&gt; cd tbroadcast/cmt
+&gt; cmt config
+&gt; gmake
+            </pre>
+    
+          </li>
+    
+	  <li> The application is also available for Linux platforms
+	  at CERN:
+	    
+	    <pre>
+${CMTROOT}/../tbroadcast/v1/Linux/tbroadcast
+            </pre>
+    
+          </li>
+    
+          <li> The options are:
+      
+            <pre>
+&gt; tbroadcast [option...] [shell-command]
+
+    where option can be:
+
+      -select="&lt;selection-list&gt;"
+      -exclude="&lt;exclusion-list&gt;"
+      -begin=&lt;begin-pattern&gt;
+      -global                   Reach packages in all CMTPATH items
+      -threads=&lt;n&gt;              Change the maximum thread number [default is 20]
+
+      &lt;selection-list&gt; is a space-separated list of sub-strings that actual paths of
+                       all reached packages must match
+
+      &lt;exclusion-list&gt; is a space-separated list of sub-strings that actual paths of
+                       all reached packages must NOT match
+
+      &lt;begin-pattern&gt;  is a sub-string matching a package path for beginning the broadcast loop
+
+      -select=, -exclude=, -begin= can be combined
+
+      -select=, -exclude= can be accumulated
+
+	    </pre>
+
+	    <p>If the shell-command is omitted, the broadcast loop
+	    simply traverses the graph, reaching all packages and
+	    doing nothing. This is useful to test the traversal.</p>
+
+          </blockquote>
+
+        <hr />
+        <h2>Examples</h2>
+
+        <blockquote>
+
+          <i>This example shows how to use tbroadcast in the context of the Atlas project</i>
+
+          <pre>&gt; source setup.sh -tag=7.5.0
+&gt; cd .....dist/7.5.0/AtlasRelease/*/cmt
+&gt alias tbroadcast=$CMTROOT/../tbroadcast/v1/Linux/tbroadcast
+&gt; tbroadcast -select=/Database/
+&gt; tbroadcast -global
+&gt; tbroadcast -begin=/StoreGate/
+
+          </pre>
+
+        </blockquote>
+
+        <hr>
+    <address><a href="mailto:arnault@lal.in2p3.fr">Christian Arnault</a></address>
+<!-- Created: Fri Jan 30 12:20:51 CET 2004 -->
+<!-- hhmts start -->
+Last modified: Fri Jan 30 12:50:46 CET 2004
+<!-- hhmts end -->
+    </body>
+  </font>
+</html>
