--- jsr166/src/jsr166y/RecursiveAction.java 2009/07/20 21:54:51 1.3 +++ jsr166/src/jsr166y/RecursiveAction.java 2009/07/20 22:40:09 1.4 @@ -16,49 +16,46 @@ package jsr166y; *

Sample Usages. Here is a sketch of a ForkJoin sort that * sorts a given {@code long[]} array: * - *

+ *  
 {@code
  * class SortTask extends RecursiveAction {
  *   final long[] array; final int lo; final int hi;
  *   SortTask(long[] array, int lo, int hi) {
  *     this.array = array; this.lo = lo; this.hi = hi;
  *   }
  *   protected void compute() {
- *     if (hi - lo < THRESHOLD)
+ *     if (hi - lo < THRESHOLD)
  *       sequentiallySort(array, lo, hi);
  *     else {
- *       int mid = (lo + hi) >>> 1;
+ *       int mid = (lo + hi) >>> 1;
  *       invokeAll(new SortTask(array, lo, mid),
  *                 new SortTask(array, mid, hi));
  *       merge(array, lo, hi);
  *     }
  *   }
- * }
- * 
+ * }}
* * You could then sort anArray by creating {@code new SortTask(anArray, 0, * anArray.length-1) } and invoking it in a ForkJoinPool. * As a more concrete simple example, the following task increments * each element of an array: - *
+ *  
 {@code
  * class IncrementTask extends RecursiveAction {
  *   final long[] array; final int lo; final int hi;
  *   IncrementTask(long[] array, int lo, int hi) {
  *     this.array = array; this.lo = lo; this.hi = hi;
  *   }
  *   protected void compute() {
- *     if (hi - lo < THRESHOLD) {
- *       for (int i = lo; i < hi; ++i)
+ *     if (hi - lo < THRESHOLD) {
+ *       for (int i = lo; i < hi; ++i)
  *         array[i]++;
  *     }
  *     else {
- *       int mid = (lo + hi) >>> 1;
+ *       int mid = (lo + hi) >>> 1;
  *       invokeAll(new IncrementTask(array, lo, mid),
  *                 new IncrementTask(array, mid, hi));
  *     }
  *   }
- * }
- * 
- * + * }}
* *

The following example illustrates some refinements and idioms * that may lead to better performance: RecursiveActions need not be @@ -71,7 +68,7 @@ package jsr166y; * potential excess partitioning by directly performing leaf actions * on unstolen tasks rather than further subdividing. * - *

+ *  
 {@code
  * double sumOfSquares(ForkJoinPool pool, double[] array) {
  *   int n = array.length;
  *   int seqSize = 1 + n / (8 * pool.getParallelism());
@@ -92,7 +89,7 @@ package jsr166y;
  *
  *   double atLeaf(int l, int r) {
  *     double sum = 0;
- *     for (int i = l; i < h; ++i) // perform leftmost base step
+ *     for (int i = l; i < h; ++i) // perform leftmost base step
  *       sum += array[i] * array[i];
  *     return sum;
  *   }
@@ -101,9 +98,9 @@ package jsr166y;
  *     int l = lo;
  *     int h = hi;
  *     Applyer right = null;
- *     while (h - l > 1 &&
- *        ForkJoinWorkerThread.getEstimatedSurplusTaskCount() <= 3) {
- *        int mid = (l + h) >>> 1;
+ *     while (h - l > 1 &&
+ *        ForkJoinWorkerThread.getEstimatedSurplusTaskCount() <= 3) {
+ *        int mid = (l + h) >>> 1;
  *        right = new Applyer(array, mid, h, seqSize, right);
  *        right.fork();
  *        h = mid;
@@ -120,8 +117,7 @@ package jsr166y;
  *      }
  *     result = sum;
  *   }
- * }
- * 
+ * }}
*/ public abstract class RecursiveAction extends ForkJoinTask {