Skip to content
Snippets Groups Projects
  1. Jul 20, 2020
  2. Mar 25, 2020
    • Nat Goodspeed's avatar
      DRTVWR-476: Terminate long-lived coroutines to avoid shutdown crash. · 1345a02b
      Nat Goodspeed authored
      Add LLCoros::TempStatus instances around known suspension points so
      printActiveCoroutines() can report what each suspended coroutine is waiting
      for.
      
      Similarly, sprinkle checkStop() calls at known suspension points.
      
      Make LLApp::setStatus() post an event to a new LLEventPump "LLApp" with a
      string corresponding to the status value being set, but only until
      ~LLEventPumps() -- since setStatus() also gets called very late in the
      application's lifetime.
      
      Make postAndSuspendSetup() (used by postAndSuspend(), suspendUntilEventOn(),
      postAndSuspendWithTimeout(), suspendUntilEventOnWithTimeout()) add a listener
      on the new "LLApp" LLEventPump that pushes the new LLCoros::Stopping exception
      to the coroutine waiting on the LLCoros::Promise. Make it return the new
      LLBoundListener along with the previous one.
      
      Accordingly, make postAndSuspend() and postAndSuspendWithTimeout() store the
      new LLBoundListener returned by postAndSuspendSetup() in a LLTempBoundListener
      (as with the previous one) so it will automatically disconnect once the wait
      is over.
      
      Make each LLCoprocedurePool instance listen on "LLApp" with a listener that
      closes the queue on which new work items are dispatched. Closing the queue
      causes the waiting dispatch coroutine to terminate. Store the connection in an
      LLTempBoundListener on the LLCoprocedurePool so it will disconnect
      automatically on destruction.
      
      Refactor the loop in coprocedureInvokerCoro() to instantiate TempStatus around
      the suspending call.
      
      Change a couple spammy LL_INFOS() calls to LL_DEBUGS(). Give all logging calls
      in that module a "CoProcMgr" tag to make it straightforward to re-enable the
      LL_DEBUGS() calls as desired.
      1345a02b
  3. Jun 14, 2018
  4. May 17, 2018
    • Nat Goodspeed's avatar
      SL-821: Move Windows BugSplat engagement from llcommon to newview. · c5f618d0
      Nat Goodspeed authored
      Use WSTRINGIZE(), LL_TO_WSTRING(), wstringize() to produce required wide
      strings. Use a lambda for callback that sends log file; use LLDir, if set, to
      find the log file.
      
      Introduce BUGSPLAT CMake variable to allow suppressing BugSplat.
      Make BUGSPLAT CMake variable set LL_BUGSPLAT for C++ compilations.
      
      Set viewer version macros on llappviewerwin32.cpp, llappviewerlinux.cpp and
      llappdelegate-objc.mm -- because BugSplat needs the viewer version data, and
      because the macOS BugSplat hook is engaged in an Objective-C++ function we
      override in the app delegate.
      c5f618d0
  5. Oct 24, 2017
  6. Oct 19, 2017
  7. Oct 18, 2017
  8. Sep 07, 2017
  9. Sep 06, 2017
  10. Apr 20, 2016
  11. Nov 10, 2015
  12. May 20, 2015
  13. Apr 14, 2014
  14. Mar 07, 2014
  15. Jan 26, 2014
  16. Jan 23, 2014
  17. Jan 22, 2014
  18. Jan 16, 2014
  19. Jan 14, 2014
  20. Dec 04, 2013
  21. Dec 03, 2013
  22. Aug 09, 2013
  23. Jun 05, 2013
  24. Jun 01, 2013
  25. May 30, 2013
  26. Mar 30, 2013
  27. Mar 29, 2013
  28. Mar 28, 2013
  29. Mar 27, 2013
  30. Oct 22, 2012
Loading