private synchronized int ice(int oldValue, int newValue) {
        if (oldValue == val) {
            val = newValue;
            return oldValue;
        } else {
            return val;
        }
    }
Val is stored somewhere. If oldVal is same as val
then you change val to newVal and return oldVal
Otherwise you do nothing but return val
@param oldValue
@param newValue
@return
src/com/interview/multithreaded/SpinLockMutex.java