Eu não penso que é seguro. Porque i++ significaria realmente algo como
Em INTEL:
movl i, MACHADO
MACHADO do inc
Em AMD:
movl $0, -4 (%rbp)
addl $1, -4 (%rbp)
Assim, de fato, é duas instruções de conjunto, e se o interruptor do contexto acontece in-between, a seguir os dados é corrompido