use CAS loop, and PaddedAtomicLong, instead of synchronized block on createTime