Any particular reason not to use volatile instead of explicit synchronization here? It's not a big deal either way, the performance difference should be negligible here...