Am Mittwoch, 30. März 2016, 22:23:35 CEST schrieb Konstantin Tokarev: > Hello, > > Are there any plans to reimplement QThreadStorage via thread_local for > compilers which support it?
QThreadStorage is already implemented with __thread which is a bit like thread_local before it existed. https://code.woboq.org/qt5/qtbase/src/corelib/thread/qthread_unix.cpp.html#_ZL17currentThreadData But it's not possible to make each instance of QThreadStorage a thread_local, because QThreadStorage is creating an instance and you can't have thread_local per instance of QThreadStorage. The best we could do is a macro: something like this // if the compiler don't have thread_local #define Q_THREAD_LOCAL(TYPE, XX) QThreadStorage<TYPE> XX // else #define Q_THREAD_LOCAL(TYPE, XX) thread_local QFakeThreadStorage<TYPE> XX (where QFakeThreadStorage is just a class that contains an instance with the same API as QThreadStorage) -- Olivier Woboq - Qt services and support - https://woboq.com - https://code.woboq.org _______________________________________________ Development mailing list [email protected] http://lists.qt-project.org/mailman/listinfo/development
