ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/src/main/java/util/concurrent/ThreadPoolExecutor.java
(Generate patch)

Comparing jsr166/src/main/java/util/concurrent/ThreadPoolExecutor.java (file contents):
Revision 1.38 by tim, Wed Dec 10 01:51:11 2003 UTC vs.
Revision 1.39 by tim, Wed Dec 10 02:24:00 2003 UTC

# Line 455 | Line 455 | public class ThreadPoolExecutor extends
455      void interruptIdleWorkers() {
456          mainLock.lock();
457          try {
458 <            for (Iterator<Worker> it = workers.iterator(); it.hasNext(); )
459 <                it.next().interruptIfIdle();
458 >            for (Worker w : workers)
459 >                w.interruptIfIdle();
460          } finally {
461              mainLock.unlock();
462          }
# Line 825 | Line 825 | public class ThreadPoolExecutor extends
825              if (workers.size() > 0) {
826                  if (runState == RUNNING) // don't override shutdownNow
827                      runState = SHUTDOWN;
828 <                for (Iterator<Worker> it = workers.iterator(); it.hasNext(); )
829 <                    it.next().interruptIfIdle();
828 >                for (Worker w: workers)
829 >                    w.interruptIfIdle();
830              }
831              else { // If no workers, trigger full termination now
832                  fullyTerminated = true;
# Line 841 | Line 841 | public class ThreadPoolExecutor extends
841      }
842  
843  
844 <    public List shutdownNow() {
844 >    public List<Runnable> shutdownNow() {
845          boolean fullyTerminated = false;
846          mainLock.lock();
847          try {
848              if (workers.size() > 0) {
849                  if (runState != TERMINATED)
850                      runState = STOP;
851 <                for (Iterator<Worker> it = workers.iterator(); it.hasNext(); )
852 <                    it.next().interruptNow();
851 >                for (Worker w : workers)
852 >                    w.interruptNow();
853              }
854              else { // If no workers, trigger full termination now
855                  fullyTerminated = true;
# Line 861 | Line 861 | public class ThreadPoolExecutor extends
861          }
862          if (fullyTerminated)
863              terminated();
864 <        return Arrays.asList(workQueue.toArray());
864 >            
865 >        return Arrays.asList((Runnable[])workQueue.toArray());
866      }
867  
868      public boolean isShutdown() {
# Line 1177 | Line 1178 | public class ThreadPoolExecutor extends
1178          mainLock.lock();
1179          try {
1180              int n = 0;
1181 <            for (Iterator<Worker> it = workers.iterator(); it.hasNext(); ) {
1182 <                if (it.next().isActive())
1181 >            for (Worker w : workers) {
1182 >                if (w.isActive())
1183                      ++n;
1184              }
1185              return n;
# Line 1215 | Line 1216 | public class ThreadPoolExecutor extends
1216          mainLock.lock();
1217          try {
1218              long n = completedTaskCount;
1219 <            for (Iterator<Worker> it = workers.iterator(); it.hasNext(); ) {
1219 <                Worker w = it.next();
1219 >            for (Worker w : workers) {
1220                  n += w.completedTasks;
1221                  if (w.isActive())
1222                      ++n;
# Line 1240 | Line 1240 | public class ThreadPoolExecutor extends
1240          mainLock.lock();
1241          try {
1242              long n = completedTaskCount;
1243 <            for (Iterator<Worker> it = workers.iterator(); it.hasNext(); )
1244 <                n += it.next().completedTasks;
1243 >            for (Worker w : workers)
1244 >                n += w.completedTasks;
1245              return n;
1246          } finally {
1247              mainLock.unlock();

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines