Skip to content
Snippets Groups Projects
  1. Jun 26, 2015
    • Nat Goodspeed's avatar
      MAINT-5232: Loosen LLSingleton circularity constraints slightly. · 687efd84
      Nat Goodspeed authored
      LLSingleton explicitly supports circular dependencies: initialization
      performed during an LLSingleton subclass's initSingleton() method may
      recursively call that same subclass's getInstance() method. On the other hand,
      circularity from a subclass constructor cannot be permitted, else
      getInstance() would have to return a partially-constructed object.
      Our dependency tracking circularity check initially forbade both. Loosen it to
      permit references from within initSingleton().
      687efd84
  2. Jun 25, 2015
    • Nat Goodspeed's avatar
      MAINT-5232: Try to avoid circularity between LLError and LLSingleton. · 0ea1b2a1
      Nat Goodspeed authored
      Part of LLError's logging infrastructure is implemented with an LLSingleton.
      Therefore, attempts to log from within LLSingleton machinery could potentially
      go south if LLError's LLSingleton is not yet initialized.
      Introduce LLError::is_available() in llerrorcontrol.h and llerror.cpp.
      Make LLSingletonBase::logwarns() and logerrs() consult LLError::is_available()
      before attempting to use LL_WARNS or LL_ERRS, respectively.
      Moreover, make all LLSingleton internal logging use logwarns() and logerrs()
      instead of directly engaging LL_ERRS or LL_WARNS.
      0ea1b2a1
  3. Jun 24, 2015
    • Nat Goodspeed's avatar
      MAINT-5232: Introduce inter-LLSingleton dependency tracking. · d792baf9
      Nat Goodspeed authored
      Introduce LLSingleton::cleanupSingleton() canonical method as the place to put
      any subclass cleanup logic that might take nontrivial realtime or throw an
      exception. Neither is appropriate in a destructor.
      Track all extant LLSingleton subclass instances on a master list, which
      permits adding LLSingletonBase::cleanupAll() and deleteAll() methods.
      Also notice when any LLSingleton subclass constructor (or initSingleton()
      method) calls instance() or getInstance() for another LLSingleton, and capture
      that other LLSingleton instance as a dependency of the first. This permits
      cleanupAll() and deleteAll() to perform a dependency sort on the master list,
      thus cleaning up (or deleting) leaf LLSingletons AFTER the LLSingletons that
      depend on them.
      Make C++ runtime's final static destructor call LLSingletonBase::deleteAll()
      instead of deleting individual LLSingleton instances in arbitrary order.
      Eliminate "llerror.h" from llsingleton.h, a longstanding TODO.
      d792baf9
  4. Apr 24, 2013
  5. Mar 29, 2013
  6. Oct 13, 2010
  7. Sep 21, 2010
  8. Aug 13, 2010
  9. Aug 06, 2009
  10. Aug 05, 2009
  11. Jun 30, 2009
  12. Jun 21, 2009
  13. May 08, 2009
  14. Feb 25, 2009
    • Robert Knop's avatar
      svn merge -r108815:112761 svn+ssh://svn.lindenlab.com/svn/linden/branches/server/server-1.26 · c88b470a
      Robert Knop authored
      The biggest things in this are Scalable Space Servers and Maint-Server-6
      
      QAR-1209 : SSS
      QAR-1295 : maint-server-6
      
      Conflicts resolved by prospero:
      
      C    scripts/farm_distribute
      
      C    scripts/automated_build_scripts/build-linux.sh : resolved by
                           prospero, mostly kept the merge-right version in
                           the conflict, but there was one block of repeated
                           code from earlier that I removed.
      
      C    scripts/automated_build_scripts/build-mac.sh : kept merge-right
      
      C    indra/llcommon/llversionserver.h : svn revert
      
      C    indra/newsim/llsimparcel.h : kept *both*... working had "setArea",
                          merge-right had exportStream and importStream
      
      C    indra/newsim/llsimparcel.cpp : see llsimparcel.h
      
      C    indra/newsim/lltask.h : working had LLTask derived also from
                         LLScriptResourceConsumer, merge-right had LLTask
                         dervied also from LLAgentPosition.  To resolve
                         conflict, derive from both.
      
      C    indra/newsim/lllslmanager.h : kept merge-right (had an added comment)
      
      C    indra/llmessage/llhttpnode.h : kept working (added the definition
                         of method LLHTTPNode::extendedResult)
      
      C    indra/lscript/lscript_execute_mono/llscriptexecutemono.cpp
      C    indra/lscript/lscript_execute_mono/llscriptexecutemono.h
                        : These two were resolved by si, in consultation with daveh
      
      
      I also had to add the following stubs to
      indra/newsim/tests/llgodkickutils_test.cpp in order to get it to
      compile:
      
        // LLScriptResourceConsumer interface methods in LLTask
        LLScriptResource::LLScriptResource() { }
        LLScriptResourcePool::LLScriptResourcePool() { }
        LLScriptResourcePool LLScriptResourcePool::null;
      
        LLScriptResourceConsumer::LLScriptResourceConsumer() { }
        LLScriptResourcePool& LLScriptResourceConsumer::getScriptResourcePool() { return LLScriptResourcePool::null; }
        const LLScriptResourcePool& LLScriptResourceConsumer::getScriptResourcePool() const { return LLScriptResourcePool::null; }
        bool LLScriptResourceConsumer::switchScriptResourcePools(LLScriptResourcePool& new_pool) { return false; }
        bool LLScriptResourceConsumer::canUseScriptResourcePool(const LLScriptResourcePool& resource_pool) { return false; }
        bool LLScriptResourceConsumer::isInPool(const LLScriptResourcePool& resource_pool) { return false; }
        void LLScriptResourceConsumer::setScriptResourcePool(LLScriptResourcePool& pool) { }
      
        S32 LLTask::getUsedPublicURLs() const { return 0; }
        void LLTask::setScriptResourcePool(LLScriptResourcePool& pool) { }
      c88b470a
  15. Jan 07, 2009
  16. Oct 04, 2007
  17. Jan 02, 2007
Loading