Skip to content
Snippets Groups Projects
  1. Sep 08, 2020
  2. Aug 08, 2020
  3. Jul 20, 2020
  4. 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
  5. Jun 14, 2018
  6. 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
  7. Oct 24, 2017
  8. Oct 19, 2017
  9. Oct 18, 2017
  10. Sep 07, 2017
  11. Sep 06, 2017
  12. Apr 20, 2016
  13. Nov 10, 2015
  14. May 20, 2015
  15. Apr 14, 2014
  16. Mar 07, 2014
  17. Jan 26, 2014
  18. Jan 23, 2014
  19. Jan 22, 2014
  20. Jan 16, 2014
  21. Jan 14, 2014
  22. Dec 04, 2013
  23. Dec 03, 2013
  24. Aug 09, 2013
  25. Jun 05, 2013
  26. Jun 01, 2013
  27. May 30, 2013
  28. Mar 30, 2013
  29. Mar 29, 2013
  30. Mar 28, 2013
  31. Mar 27, 2013
Loading