public Object reset(Object newval){ Object oldval = state.get(); validate(newval); state.set(newval); notifyWatches(oldval, newval); return newval; } }
public boolean compareAndSet(Object oldv, Object newv){ validate(newv); boolean ret = state.compareAndSet(oldv, newv); if(ret) notifyWatches(oldv, newv); return ret; }
public Object reset(Object newval){ Object oldval = state.get(); validate(newval); state.set(newval); notifyWatches(oldval, newval); return newval; } }
public boolean compareAndSet(Object oldv, Object newv){ validate(newv); boolean ret = state.compareAndSet(oldv, newv); if(ret) notifyWatches(oldv, newv); return ret; }
public Object swap(IFn f, Object arg1, Object arg2) { for(; ;) { Object v = deref(); Object newv = f.invoke(v, arg1, arg2); validate(newv); if(state.compareAndSet(v, newv)) { notifyWatches(v, newv); return newv; } } }
public Object swap(IFn f, Object arg) { for(; ;) { Object v = deref(); Object newv = f.invoke(v, arg); validate(newv); if(state.compareAndSet(v, newv)) { notifyWatches(v, newv); return newv; } } }
public Object swap(IFn f) { for(; ;) { Object v = deref(); Object newv = f.invoke(v); validate(newv); if(state.compareAndSet(v, newv)) { notifyWatches(v, newv); return newv; } } }
public Object swap(IFn f, Object arg1, Object arg2) { for(; ;) { Object v = deref(); Object newv = f.invoke(v, arg1, arg2); validate(newv); if(state.compareAndSet(v, newv)) { notifyWatches(v, newv); return newv; } } }
public Object swap(IFn f) { for(; ;) { Object v = deref(); Object newv = f.invoke(v); validate(newv); if(state.compareAndSet(v, newv)) { notifyWatches(v, newv); return newv; } } }
public Object swap(IFn f, Object arg) { for(; ;) { Object v = deref(); Object newv = f.invoke(v, arg); validate(newv); if(state.compareAndSet(v, newv)) { notifyWatches(v, newv); return newv; } } }
public Object swap(IFn f, Object x, Object y, ISeq args) { for(; ;) { Object v = deref(); Object newv = f.applyTo(RT.listStar(v, x, y, args)); validate(newv); if(state.compareAndSet(v, newv)) { notifyWatches(v, newv); return newv; } } }
public Object swap(IFn f, Object x, Object y, ISeq args) { for(; ;) { Object v = deref(); Object newv = f.applyTo(RT.listStar(v, x, y, args)); validate(newv); if(state.compareAndSet(v, newv)) { notifyWatches(v, newv); return newv; } } }