summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--indra/viewer_components/updater/llupdaterservice.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/indra/viewer_components/updater/llupdaterservice.cpp b/indra/viewer_components/updater/llupdaterservice.cpp
index 1665e41e70..df021948c3 100644
--- a/indra/viewer_components/updater/llupdaterservice.cpp
+++ b/indra/viewer_components/updater/llupdaterservice.cpp
@@ -158,7 +158,8 @@ public:
private:
std::string mNewChannel;
std::string mNewVersion;
-
+ LLTempBoundListener mMainLoopConnection;
+
void restartTimer(unsigned int seconds);
void setState(LLUpdaterService::eUpdaterState state);
void stopTimer();
@@ -179,7 +180,8 @@ LLUpdaterServiceImpl::LLUpdaterServiceImpl() :
LLUpdaterServiceImpl::~LLUpdaterServiceImpl()
{
LL_INFOS("UpdaterService") << "shutting down updater service" << LL_ENDL;
- LLEventPumps::instance().obtain("mainloop").stopListening(sListenerName);
+ // Destroying an LLTempBoundListener implicitly disconnects. That's its
+ // whole purpose.
}
void LLUpdaterServiceImpl::initialize(const std::string& channel,
@@ -560,7 +562,7 @@ void LLUpdaterServiceImpl::restartTimer(unsigned int seconds)
seconds << " seconds" << LL_ENDL;
mTimer.start();
mTimer.setTimerExpirySec((F32)seconds);
- LLEventPumps::instance().obtain("mainloop").listen(
+ mMainLoopConnection = LLEventPumps::instance().obtain("mainloop").listen(
sListenerName, boost::bind(&LLUpdaterServiceImpl::onMainLoop, this, _1));
}
@@ -589,7 +591,7 @@ void LLUpdaterServiceImpl::setState(LLUpdaterService::eUpdaterState state)
void LLUpdaterServiceImpl::stopTimer()
{
mTimer.stop();
- LLEventPumps::instance().obtain("mainloop").stopListening(sListenerName);
+ mMainLoopConnection.disconnect();
}
bool LLUpdaterServiceImpl::onMainLoop(LLSD const & event)