Hi Kristian, thanks for your feedback. Yes I added these templates to hide data type and warapping in locks, which I still find reasonable.
OTOH I also hid the fact of use of atomic ops. I tend to agree it is wrong. Do you think keeping the former and fixing the latter is acceptable? Thanks, Sergey On Fri, Jan 24, 2014 at 09:05:04AM +0100, Kristian Nielsen wrote: > Sergey Vojtovich <[email protected]> writes: > > > +#ifdef __cplusplus > > +template <typename T, int S> class Atomic_type_triat; > > + > > + > > +template <typename T> class Atomic_type_triat<T, 4> > > > +template <typename T> class Atomic_type_triat<T, 8> > > > +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! > > - Kristian. _______________________________________________ Mailing list: https://launchpad.net/~maria-developers Post to : [email protected] Unsubscribe : https://launchpad.net/~maria-developers More help : https://help.launchpad.net/ListHelp

