Если у меня есть атомный переменный следующий образ:неразрушающий атомный add?
#include <atomic>
std::atomic<int> a = 5;
Я хотел бы атомарно проверить (a + 4)
меньше, чем другие переменный, без перезаписывания исходного значения a
:
if(a.something(4) < another_variable){
//Do not want a to be incremented by 4 at this point
}
Я быстро проверил атомные fetch_and_add()
и ++
, и все они, похоже, впоследствии увеличивают значение переменной a
. Есть ли способ, которым я могу атомизировать приращение к тесту, без постоянного результата?
'another_variable - = 4'? –
Что должно быть атомарным, если нет видимого побочного эффекта вне этой темы? Атомный по отношению к чему? – Useless
Что не так с помощью 'a + 4