а какие +/- у QThreadStorage, примеров с его использованием в examples я не нашел. А из того, что написано в help не очень понятно нужно ли к нему дополнительно лепить mutex'ы?
вот код из справки, вроде несложная обертка
QThreadStorage<QCache<QString, SomeClass> *> caches;
void cacheObject(const QString &key, SomeClass *object)
{
if (!caches.hasLocalData())
caches.setLocalData(new QCache<QString, SomeClass>);
caches.localData()->insert(key, object);
}
void removeFromCache(const QString &key)
{
if (!caches.hasLocalData())
return;
caches.localData()->remove(key);
}