--- src/cern/colt/matrix/linalg/SmpBlas.java.orig 2015-10-07 22:23:44.969486000 +0000 +++ src/cern/colt/matrix/linalg/SmpBlas.java 2015-10-07 22:29:15.475486000 +0000 @@ -10,7 +10,8 @@ import cern.colt.matrix.DoubleMatrix1D; import cern.colt.matrix.DoubleMatrix2D; -import EDU.oswego.cs.dl.util.concurrent.FJTask; + +import java.util.concurrent.ForkJoinTask; /** Parallel implementation of the Basic Linear Algebra System for symmetric multi processing boxes. Currently only a few algorithms are parallelised; the others are fully functional, but run in sequential mode. @@ -198,7 +199,7 @@ // set up concurrent tasks int span = width/noOfTasks; - final FJTask[] subTasks = new FJTask[noOfTasks]; + final ForkJoinTask[] subTasks = new ForkJoinTask[noOfTasks]; for (int i=0; i1) { - this.taskGroup = new FJTaskRunnerGroup(maxThreads); + this.taskGroup = new ForkJoinPool(maxThreads); } else { // avoid parallel overhead this.taskGroup = null; } } -/** - * Clean up deamon threads, if necessary. - */ -public void finalize() { - if (this.taskGroup!=null) this.taskGroup.interruptAll(); -} protected void run(final DoubleMatrix2D[] blocksA, final DoubleMatrix2D[] blocksB, final double[] results, final Matrix2DMatrix2DFunction function) { - final FJTask[] subTasks = new FJTask[blocksA.length]; + final ForkJoinTask[] subTasks = new ForkJoinTask[blocksA.length]; for (int i=0; i