#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
еще не изобретен.