Actually, this is still not quite ok. Yes, what you said is absolutely correct, but since the closure is run in the UI Thread, the underlying symbol's state may have changed in-between, and hence the symbol's state seen when the closure is run is undefined.