Я писал. Нужно сделать чтобы эти два вызова "были атомарны". Такое замечание
Ну так для этого нужно разобраться с потоками, какие потоки могут обращаться к этим переменным, разобраться с последовательностью действий, которые текущий поток с переменной совершает, и расставить блокировки, чтоб пока переменная нужна этому потоку, другие потоки вклиниться не могли в процесс.
В сыром виде атомарная операция это такая операция которая выполняется за один такт процессора.
Цикл или вызов функции нельзя сделать по настоящему атомарным, но можно заблокировать нужную тебе память, пока не закончатся манипуляции с переменной.