1855 |
|
} |
1856 |
|
else if (!queued) |
1857 |
|
queued = tryPushStack(q); |
1858 |
+ |
else if (interruptible && q.interrupted) { |
1859 |
+ |
q.thread = null; |
1860 |
+ |
cleanStack(); |
1861 |
+ |
return null; |
1862 |
+ |
} |
1863 |
|
else { |
1864 |
|
try { |
1865 |
|
ForkJoinPool.managedBlock(q); |
1866 |
|
} catch (InterruptedException ie) { // currently cannot happen |
1867 |
|
q.interrupted = true; |
1868 |
|
} |
1864 |
– |
if (q.interrupted && interruptible) |
1865 |
– |
break; |
1869 |
|
} |
1870 |
|
} |
1871 |
< |
if (q != null && queued) { |
1871 |
> |
if (q != null) { |
1872 |
|
q.thread = null; |
1873 |
< |
if (!interruptible && q.interrupted) |
1873 |
> |
if (q.interrupted) |
1874 |
|
Thread.currentThread().interrupt(); |
1872 |
– |
if (r == null) |
1873 |
– |
cleanStack(); |
1875 |
|
} |
1876 |
< |
if (r != null || (r = result) != null) |
1876 |
< |
postComplete(); |
1876 |
> |
postComplete(); |
1877 |
|
return r; |
1878 |
|
} |
1879 |
|
|