synchronized & happens-before