void innerRun() { if (!compareAndSetState(0, RUNNING)) { return; } try { runningThread = Thread.currentThread(); innerSet(process.execute(input, this)); } catch (Throwable ex) { innerSetException(ex); } }
boolean innerRunAndReset() { if (!compareAndSetState(0, RUNNING)) { return false; } try { runningThread = Thread.currentThread(); process.execute(input, this); // don't set the result runningThread = null; return compareAndSetState(RUNNING, 0); } catch (Throwable ex) { innerSetException(ex); return false; } }
boolean innerCancel(boolean mayInterruptIfRunning) { for (; ; ) { int s = getState(); if (ranOrCancelled(s)) { return false; } if (compareAndSetState(s, CANCELED)) { break; } } if (mayInterruptIfRunning) { Thread r = runningThread; if (r != null) { r.interrupt(); } } releaseShared(0); done(); return true; }
boolean innerCancel(boolean mayInterruptIfRunning) { for (;;) { int s = getState(); if (ranOrCancelled(s)) { return false; } if (compareAndSetState(s, CANCELED)) { break; } } if (mayInterruptIfRunning) { Thread r = runningThread; if (r != null) { r.interrupt(); } } releaseShared(0); done(); return true; }
void innerSetException(Throwable t) { for (;;) { int s = getState(); if (ranOrCancelled(s)) { return; } if (compareAndSetState(s, COMPLETED)) { break; } } exception = t; result = null; releaseShared(0); done(); }
boolean innerRunAndReset() { if (!compareAndSetState(0, RUNNING)) { return false; } try { runningThread = Thread.currentThread(); process.execute( input, this ); // don't set the result runningThread = null; return compareAndSetState(RUNNING, 0); } catch(Throwable ex) { innerSetException(ex); return false; } }
void innerSet(Map<String,Object> v) { for (;;) { int s = getState(); if (ranOrCancelled(s)) { return; } if (compareAndSetState(s, COMPLETED)) { break; } } result = v; releaseShared(0); done(); }
void innerRun() { if (!compareAndSetState(0, RUNNING)) { return; } try { runningThread = Thread.currentThread(); innerSet(process.execute( input, this )); } catch(Throwable ex) { innerSetException(ex); } }
void innerSetException(Throwable t) { for (; ; ) { int s = getState(); if (ranOrCancelled(s)) { return; } if (compareAndSetState(s, COMPLETED)) { break; } } exception = t; result = null; releaseShared(0); done(); }
void innerSet(Map<String, Object> v) { for (; ; ) { int s = getState(); if (ranOrCancelled(s)) { return; } if (compareAndSetState(s, COMPLETED)) { break; } } result = v; releaseShared(0); done(); }