On 2014-04-16 03:18, Volker Krause wrote: > On Tuesday 15 April 2014 08:02:56 Thiago Macieira wrote: >> In other words: use QBasicAtomicPointer. > > As mentioned on https://codereview.qt-project.org/#change,83272 Kevin Funk > measured the difference between the current approach and using atomics using > Olivier's initial benchmark, it's about 4-5x slower for checking if there's a > callback set.
How are you doing that check? I believe the 'correct' way is 'if (callback)', which calls an inline operator that accesses the internal pointer directly, i.e. 'callback->operator T*' -> 'callback->_q_value' (which should further be the first member, and thus require no additional instructions to access versus a raw pointer type). The only reason this should perform significantly different is if you're comparing it to a non-volatile raw pointer... and I'd be very, very suspicious of using a non-volatile raw pointer that may be written in another thread. -- Matthew _______________________________________________ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development