Usando volátil desde que atômico

Se eu tenho algo assim ...

volatile long something_global = 0;

long some_public_func()
{
    return something_global++;
}

Seria razoável esperar que esse código não quebre (condição de corrida) quando acessado com vários threads? Se não é padrão, ainda pode ser feito como uma suposição razoável sobre os compiladores modernos?

OBSERVAÇÃO: TUDO para o qual estou usando isso é incremento e decremento atômico - nada mais sofisticado.

questionAnswers(6)

yourAnswerToTheQuestion