Почему нет atomic_add_and_test?

#linux #linux-kernel #atomic

#linux #linux-ядро #атомарный

Вопрос:

Я прочитал Linux Device Drivers v3, и теперь я работаю с атомарными переменными, есть операции, которые увеличивают, уменьшают или вычитают значение атомной переменной, но нет операции, которая добавляет и проверяет атомарную переменную, и мне интересно, почему?

 int atomic_inc_and_test(atomic_t *v);
int atomic_dec_and_test(atomic_t *v);
int atomic_sub_and_test(int i, atomic_t *v);
 

Комментарии:

1. Я предполагаю, что нет такой аппаратной инструкции, потому что нет необходимости ее реализовывать.

2. @KamilCuk Хорошо, спасибо, но я спрашиваю, почему в этом нет необходимости?

3. @MohsenFakhrizadeh мой плохой, я неправильно истолковал ваш вопрос.

4. Что atomic_sub_and_test(-i, v) делает?

5. atomic_add_and_test еще не изобретен.