maria-developers team mailing list archive
-
maria-developers team
-
Mailing list archive
-
Message #06689
Re: [Commits] Rev 3965: MDEV-5403 - Reduce usage of LOCK_open: tc_count in lp:maria/10.0
Hi, Kristian!
On Jan 24, Kristian Nielsen wrote:
> Sergey Vojtovich <svoj@xxxxxxxxxxx> writes:
>
> > +template <typename T, typename S= Atomic_type_triat<T, sizeof(T)> > class Atomic
>
> > + T operator++() { return add(1) + 1; }
>
> [lots and lots of more template code snipped]
>
> I am vetoing this.
>
> We really, _really_ do not want to package up the atomic stuff in even more
> abstractions and API layers than we already have.
>
> Atomics and lock-free stuff is in itself plenty complicated. It is crucial
> that one can at least see easily in the code what is going on, without also
> having to spend effort to understand multiple layers of wrapping.
>
> As far as I can see, the only thing the templates do is hide stuff (like the
> data type used and the wrapping in locks on platforms without atomic
> support?), while what we need is to make those details clear to people reading
> the code, not to hide them!
I partially agree. I don't like that
a++;
may be an atomic operation intenally. But I do like that one can write
my_atomic_add(a, 1); // for example
without explicitly specifying the bit width of the 'a'.
This is pretty standard feature, it works even in assembler :)
Regards,
Sergei
References