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 |
|
} |
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; |
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; |
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() { |
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; |
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; |
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(); |