LLViewerApp

From Second Life Wiki
Revision as of 13:43, 3 August 2007 by Steve Linden (talk | contribs) (New page: = Objectives = * Improve the stability and maintainability of the Second Life Viewer code by cleaning up the initialization and main loop code * Move the main loop to a separate thread so ...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Objectives

  • Improve the stability and maintainability of the Second Life Viewer code by cleaning up the initialization and main loop code
  • Move the main loop to a separate thread so that infinite loops can be detected and debugged

Tasks

LLViewerApp

  • Create a LLViewerApp class based on LLAppb
  • Move class initialization and parameter parsing to LLViewerApp
  • Move all error handling to LLViewerApp (errors set a flag and sleep, LLViewerApp generates the exception)
  • Move all debug/info/warning/error text printing to LLViewerApp
    • Print text to a buffer instead of stdio
    • Send the buffer to stdio in LLViewerApp loop

LLViewerThread

  • Create a LLViewerThread class based on LLThread
  • Move the main loop into LLViewerThread

Eliminate viewer.cpp

  • Create proper C++ abstractions for any remaining code in viewer.cpp

Watchdog

  • Add a 'watchdog' to LLViewerApp to detect infinite loops and trigger a crash
  • Ensure that the crash handler generates proper stack information for LLViewerThread