Если у меня есть что-то вроде этого ...Использование летучего пока атомное
volatile long something_global = 0;
long some_public_func()
{
return something_global++;
}
было бы разумно ожидать, этот код не сломаться (состояние гонки) при обращении с несколькими потоками? Если это не стандарт, можно ли это сделать в качестве разумного предположения о современных компиляторах?
ПРИМЕЧАНИЕ: ВСЕ, с помощью которых я использую это, является атомным приращением и декрементом - ничего не интереснее.
Что делать, если я использовал preincrement? –
Нет, единственное различие между ними - это какое значение возвращается. Предварительным приращением является также доступ к памяти, за которым следует запись в память. – danben
Aaaaaaaaaaargh. –