1
0
mirror of https://github.com/tomahawk-player/tomahawk.git synced 2025-03-19 15:29:42 +01:00

Proxies are all we really set on nams, so reset proxy data on all threads when the main thread's nam changes

This commit is contained in:
Jeff Mitchell 2011-11-08 04:52:06 -05:00
parent 4c0c610b15
commit 539f2eb700
2 changed files with 8 additions and 3 deletions

View File

@ -575,10 +575,12 @@ proxyFactory( bool noMutexLocker )
void
setProxyFactory( NetworkProxyFactory* factory )
setProxyFactory( NetworkProxyFactory* factory, bool noMutexLocker )
{
Q_ASSERT( factory );
QMutexLocker locker( &s_namAccessMutex );
// Don't lock if being called from setNam()
QMutex otherMutex;
QMutexLocker locker( noMutexLocker ? &otherMutex : &s_namAccessMutex );
if ( !s_threadProxyFactoryHash.contains( TOMAHAWK_APPLICATION::instance()->thread() ) )
return;
@ -662,6 +664,9 @@ setNam( QNetworkAccessManager* nam )
}
s_threadNamHash[ QThread::currentThread() ] = nam;
if ( QThread::currentThread() == TOMAHAWK_APPLICATION::instance()->thread() )
setProxyFactory( dynamic_cast< TomahawkUtils::NetworkProxyFactory* >( nam->proxyFactory() ), true );
}

View File

@ -97,7 +97,7 @@ namespace TomahawkUtils
DLLEXPORT NetworkProxyFactory* proxyFactory( bool noMutexLocker = false );
DLLEXPORT QNetworkAccessManager* nam();
DLLEXPORT void setProxyFactory( TomahawkUtils::NetworkProxyFactory* factory );
DLLEXPORT void setProxyFactory( TomahawkUtils::NetworkProxyFactory* factory, bool noMutexLocker = false );
DLLEXPORT void setNam( QNetworkAccessManager* nam );
DLLEXPORT QWidget* tomahawkWindow();