public IPersistentVector resetVals(object newv) { Validate(newv); for (;;) { object oldv = deref(); if (_state.CompareAndSet(oldv, newv)) { NotifyWatches(oldv, newv); return(LazilyPersistentVector.createOwning(oldv, newv)); } } }
public IPersistentVector swapVals(IFn f, object x, object y, ISeq args) { for (; ;) { object oldv = deref(); object newv = f.applyTo(RT.listStar(oldv, x, y, args)); Validate(newv); if (_state.CompareAndSet(oldv, newv)) { NotifyWatches(oldv, newv); return(LazilyPersistentVector.createOwning(oldv, newv)); } } }
public IPersistentVector swapVals(IFn f, object arg1, object arg2) { for (; ;) { object oldv = deref(); object newv = f.invoke(oldv, arg1, arg2); Validate(newv); if (_state.CompareAndSet(oldv, newv)) { NotifyWatches(oldv, newv); return(LazilyPersistentVector.createOwning(oldv, newv)); } } }
protected override object Read(PushbackTextReader r, char leftparen, object opts) { return(LazilyPersistentVector.create(ReadDelimitedList(']', r, true, opts))); }
/// <summary> /// Convert to an actual <see cref="IPersistentVector">IPersistentVector</see> with two elements. /// </summary> /// <returns>An <see cref="IPersistentVector">IPersistentVector</see> with two elements.</returns> private IPersistentVector AsVector() { return(LazilyPersistentVector.createOwning(key(), val())); }
/// <summary> /// Returns a new stack with the top element popped. /// </summary> /// <returns>The new stack</returns> public override IPersistentStack pop() { return(LazilyPersistentVector.createOwning(key())); }