I don't think this is threadsafe. This could clobber the an update.

I'd prefer that we avoid needing volatiles in this code. And flag booleans and things.