Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- diff --git a/mythtv/libs/libmythbase/mythcorecontext.cpp b/mythtv/libs/libmythbase/mythcorecontext.cpp
- index bb2cf66..423f8a2 100644
- --- a/mythtv/libs/libmythbase/mythcorecontext.cpp
- +++ b/mythtv/libs/libmythbase/mythcorecontext.cpp
- @@ -293,6 +293,21 @@ bool MythCoreContext::SetupCommandSocket(MythSocket *serverSock,
- return true;
- }
- +// Connects to master server safely (i.e. by taking m_sockLock)
- +bool MythCoreContext::SafeConnectToMasterServer(bool openEventSocket)
- +{
- + QMutexLocker locker(&d->m_sockLock);
- + bool success = true;
- +
- + if (!d->m_serverSock)
- + {
- + bool blockingClient = GetNumSetting("idleTimeoutSecs",0) > 0;
- + success = ConnectToMasterServer(blockingClient, openEventSocket);
- + }
- +
- + return success;
- +}
- +
- // Assumes that either m_sockLock is held, or the app is still single
- // threaded (i.e. during startup).
- bool MythCoreContext::ConnectToMasterServer(bool blockingClient,
- diff --git a/mythtv/libs/libmythbase/mythcorecontext.h b/mythtv/libs/libmythbase/mythcorecontext.h
- index 76e8eeb..7317783 100644
- --- a/mythtv/libs/libmythbase/mythcorecontext.h
- +++ b/mythtv/libs/libmythbase/mythcorecontext.h
- @@ -60,6 +60,7 @@ class MBASE_PUBLIC MythCoreContext : public QObject, public MythObservable, publ
- void SetEventSocket(MythSocket *eventSock);
- void SetScheduler(MythScheduler *sched);
- + bool SafeConnectToMasterServer(bool openEventSocket = true);
- bool ConnectToMasterServer(bool blockingClient = true,
- bool openEventSocket = true);
- diff --git a/mythtv/programs/mythfrontend/backendconnectionmanager.cpp b/mythtv/programs/mythfrontend/backendconnectionmanager.cpp
- index 17f908a..957dc86 100644
- --- a/mythtv/programs/mythfrontend/backendconnectionmanager.cpp
- +++ b/mythtv/programs/mythfrontend/backendconnectionmanager.cpp
- @@ -25,8 +25,7 @@ class Reconnect : public QRunnable
- virtual void run(void)
- {
- - // Note: GetMasterHostPrefix() implicitly reconnects the sockets
- - if (gCoreContext->GetMasterHostPrefix().isEmpty())
- + if (!gCoreContext->SafeConnectToMasterServer())
- gCoreContext->dispatch(MythEvent(QString("RECONNECT_FAILURE")));
- else
- gCoreContext->dispatch(MythEvent(QString("RECONNECT_SUCCESS")));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement