support testAndSet
support testAndSet