summaryrefslogtreecommitdiff
path: root/indra/newview/llappviewer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llappviewer.cpp')
-rw-r--r--indra/newview/llappviewer.cpp21
1 files changed, 8 insertions, 13 deletions
diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp
index 16c2b2d55a..326b5fd629 100644
--- a/indra/newview/llappviewer.cpp
+++ b/indra/newview/llappviewer.cpp
@@ -332,13 +332,11 @@ const char* const VIEWER_WINDOW_CLASSNAME = "Second Life";
* Tasks added to this list will be executed in the next LLAppViewer::idle() iteration.
* All tasks are executed only once.
*/
-class LLDeferredTaskList:
- public LLSingleton<LLDeferredTaskList>,
- private LLDestroyClass<LLDeferredTaskList>
+class LLDeferredTaskList: public LLSingleton<LLDeferredTaskList>
{
LOG_CLASS(LLDeferredTaskList);
+
friend class LLAppViewer;
- friend class LLDestroyClass<LLDeferredTaskList>;
typedef boost::signals2::signal<void()> signal_t;
void addTask(const signal_t::slot_type& cb)
@@ -348,15 +346,11 @@ class LLDeferredTaskList:
void run()
{
- if (mSignal.empty()) return;
-
- mSignal();
- mSignal.disconnect_all_slots();
- }
-
- static void destroyClass()
- {
- instance().mSignal.disconnect_all_slots();
+ if (!mSignal.empty())
+ {
+ mSignal();
+ mSignal.disconnect_all_slots();
+ }
}
signal_t mSignal;
@@ -4460,6 +4454,7 @@ void LLAppViewer::idle()
}
}
+ // Execute deferred tasks.
LLDeferredTaskList::instance().run();
// Handle shutdown process, for example,