public boolean weakCompareAndSet(V       expectedReference,
                                     V       newReference,
                                     boolean expectedMark,
                                     boolean newMark) {
        return compareAndSet(expectedReference, newReference,
                             expectedMark, newMark);
    }
public boolean weakCompareAndSet ( V expectedReference , V newReference , boolean expectedMark , boolean newMark ) { return compareAndSet ( expectedReference , newReference , expectedMark , newMark ) ; }
Atomically sets the value of both the reference and mark
to the given update values if the
current reference is {@code ==} to the expected reference
and the current mark is equal to the expected mark.

<p><a href="package-summary.html#weakCompareAndSet">May fail
spuriously and does not provide ordering guarantees</a>, so is
only rarely an appropriate alternative to {@code compareAndSet}.

@param expectedReference the expected value of the reference
@param newReference the new value for the reference
@param expectedMark the expected value of the mark
@param newMark the new value for the mark
@return {@code true} if successful