Solo las asignaciónes a variables de tipos simples son atómicas (long y double no son simples en este contexto, hay que declararlas volatile para obtener acceso atómico).