Re: atomic use is not atomic?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Jun 8, 2021 at 3:44 PM Lars-Peter Clausen <lars@xxxxxxxxxx> wrote:
> On 6/8/21 2:35 PM, Andy Shevchenko wrote:
> > Hi!
> >
> > Can anybody explain this code [1] in terms of atomicity?
> >
> >    if (!atomic_read(&trig->use_count)) {
> >      atomic_set(&trig->use_count, CONFIG_IIO_CONSUMERS_PER_TRIGGER);
> >      ...
> >    }
> >
> > AFAIU how atomics are supposed to work the above doesn't do anything
> > atomically. I.o.w. use_count may be simple int with the same effect.
> >
> The operations here do not require atomic access, it is just operating
> on a atomic type. The atomic access is the atomic_dec_and_test() in
> iio_trigger_notify_done().

So, between atomic_read and atomic_set somebody can call
atomic_dec_and_test(), for example. Is it a problem to actually lose
the value?
Why are atomic types being used here when there is no atomicity guaranteed?

-- 
With Best Regards,
Andy Shevchenko



[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Input]     [Linux Kernel]     [Linux SCSI]     [X.org]

  Powered by Linux