Re: [Maria-developers] [Commits] Rev 3916: MDEV-5403 - Reduce usage of LOCK_open: tc_count
Hi, Sergey! Not a review, only a comment on TDC_atomic part: 1. This is perfectly generally useful, not TDC specific at all. I'd consider moving it to my_atomic.h under #ifdef __cplusplus 2. These are supposed to be trivial inlined functions. I don't think you should use inheritance and virtual methods here. Everything should be in the template. I understand that function names (add64/add32/etc) are a bit tricky. Two approaches: pass them as template parameters (like in template <typename T, ADD, CAS, ...>) or - perhaps, if you put this into my_atomic.h you'll be able to generate the necessary code without using my_atomic_add32/etc ? Regards, Sergei
Hi Sergei, On Tue, Dec 10, 2013 at 05:29:42PM +0100, Sergei Golubchik wrote:
Hi, Sergey!
Not a review, only a comment on TDC_atomic part:
1. This is perfectly generally useful, not TDC specific at all. I'd consider moving it to my_atomic.h under #ifdef __cplusplus I was thinking about sql_atomic.h. But you're right - it might be useful in mysys as well.
2. These are supposed to be trivial inlined functions. I don't think you should use inheritance and virtual methods here. Everything should be in the template. Agree. Because of this complexity some functions are not inlined.
I understand that function names (add64/add32/etc) are a bit tricky. Two approaches: pass them as template parameters (like in template <typename T, ADD, CAS, ...>) or - perhaps, if you put this into my_atomic.h you'll be able to generate the necessary code without using my_atomic_add32/etc ? Yes, I will try to come up with some better solution. I'd like to offload most of the work to this Atomic template, something like: Atomic<int> a; Atomic<ulonglong> b; Atomic<void*> c;
So that it can pick proper low-level functions without bothering template user. I was thinking about using integer template arguments, but didn't yet managed to create anything meaningful from it: template <typename T, int S= sizeof(T)> class Atomic ... Regards, Sergey
participants (2)
-
Sergei Golubchik
-
Sergey Vojtovich