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

Comparing jsr166/src/main/java/util/concurrent/FutureTask.java (file contents):
Revision 1.54 by jsr166, Tue Jan 9 18:10:26 2007 UTC vs.
Revision 1.55 by jsr166, Wed Aug 8 16:19:04 2007 UTC

# Line 297 | Line 297 | public class FutureTask<V> implements Ru
297          void innerRun() {
298              if (!compareAndSetState(READY, RUNNING))
299                  return;
300 <            try {
301 <                runner = Thread.currentThread();
302 <                if (getState() == RUNNING) // recheck after setting thread
303 <                    set(callable.call());
304 <                else
305 <                    releaseShared(0); // cancel
306 <            } catch (Throwable ex) {
307 <                setException(ex);
308 <            }
300 >
301 >            runner = Thread.currentThread();
302 >            if (getState() == RUNNING) { // recheck after setting thread
303 >                V result;
304 >                try {
305 >                    result = callable.call();
306 >                } catch (Throwable ex) {
307 >                    setException(ex);
308 >                    return;
309 >                }
310 >                set(result);
311 >            } else {
312 >                releaseShared(0); // cancel
313 >            }
314          }
315  
316          boolean innerRunAndReset() {

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines