mirror of
https://github.com/tomahawk-player/tomahawk.git
synced 2025-08-06 14:16:32 +02: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:
@@ -575,10 +575,12 @@ proxyFactory( bool noMutexLocker )
|
|||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
setProxyFactory( NetworkProxyFactory* factory )
|
setProxyFactory( NetworkProxyFactory* factory, bool noMutexLocker )
|
||||||
{
|
{
|
||||||
Q_ASSERT( factory );
|
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() ) )
|
if ( !s_threadProxyFactoryHash.contains( TOMAHAWK_APPLICATION::instance()->thread() ) )
|
||||||
return;
|
return;
|
||||||
@@ -662,6 +664,9 @@ setNam( QNetworkAccessManager* nam )
|
|||||||
}
|
}
|
||||||
|
|
||||||
s_threadNamHash[ QThread::currentThread() ] = nam;
|
s_threadNamHash[ QThread::currentThread() ] = nam;
|
||||||
|
|
||||||
|
if ( QThread::currentThread() == TOMAHAWK_APPLICATION::instance()->thread() )
|
||||||
|
setProxyFactory( dynamic_cast< TomahawkUtils::NetworkProxyFactory* >( nam->proxyFactory() ), true );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@@ -97,7 +97,7 @@ namespace TomahawkUtils
|
|||||||
DLLEXPORT NetworkProxyFactory* proxyFactory( bool noMutexLocker = false );
|
DLLEXPORT NetworkProxyFactory* proxyFactory( bool noMutexLocker = false );
|
||||||
DLLEXPORT QNetworkAccessManager* nam();
|
DLLEXPORT QNetworkAccessManager* nam();
|
||||||
|
|
||||||
DLLEXPORT void setProxyFactory( TomahawkUtils::NetworkProxyFactory* factory );
|
DLLEXPORT void setProxyFactory( TomahawkUtils::NetworkProxyFactory* factory, bool noMutexLocker = false );
|
||||||
DLLEXPORT void setNam( QNetworkAccessManager* nam );
|
DLLEXPORT void setNam( QNetworkAccessManager* nam );
|
||||||
|
|
||||||
DLLEXPORT QWidget* tomahawkWindow();
|
DLLEXPORT QWidget* tomahawkWindow();
|
||||||
|
Reference in New Issue
Block a user