volatile HasStateChanged