summaryrefslogtreecommitdiff
path: root/indra/llcommon/llapp.h
AgeCommit message (Collapse)Author
2021-10-13Merge with master after latest Viewer releaseCallum Linden
2021-08-12Merge branch 'master' into DRTVWR-520-apple-notarizationAndrey Lihatskiy
# Conflicts: # autobuild.xml # build.sh # indra/CMakeLists.txt # indra/newview/CMakeLists.txt # indra/newview/llappviewermacosx.cpp # indra/newview/llappviewerwin32.h # indra/newview/viewer_manifest.py # indra/win_crash_logger/llcrashloggerwindows.cpp
2021-07-19Merge with tip of Master after a Viewer releaseCallum Prentice
2021-05-17SL-15200: Add LLApp::sleep(duration) methods.Nat Goodspeed
Two sleep() methods: one accepting F32Milliseconds, or in general any LLUnits time class; the other accepting any std::chrono::duration. The significant thing about each of these sleep() methods, as opposed to any freestanding sleep() function, is that it only sleeps until the app starts shutdown. Moreover, it returns true if it slept for the whole specified duration, false if it woke for app shutdown. This is accomplished by making LLApp::sStatus be an LLScalarCond<EAppStatus> instead of a plain EAppStatus enum, and by making setStatus() call set_all() each time the value changes. Then each new sleep() method can call wait_for_unequal(duration, APP_STATUS_RUNNING). Introducing llcond.h into llapp.h triggered an #include circularity because llthread.h #included llapp.h even though it didn't reference anything from it. Removed. This, in turn, necessitated adding #include "llapp.h" to several .cpp files that reference LLApp but had been depending on other header files to drag in llapp.h.
2021-03-17SL-14541 removed breakpad, win_crash_logger, updated zlibAndrey Kleshchev
2021-03-13SL-14961 Coroutine crash was not reported to bugsplatAndrey Kleshchev
2019-01-15SL-10291 Replace apr_atomic with standard C++11 functionalityandreykproductengine
2017-09-06MAINT-7691 Fixed crash report not generating files in unicode named foldersandreykproductengine
2016-06-30DRTVWR-418: Unify control flow through LLAppViewer across platforms.Nat Goodspeed
The LLApp API used to consist of init(), mainLoop(), cleanup() methods. This makes sense -- but on Mac that structure was being subverted. The method called mainLoop() was in fact being called once per frame. There was initialization code in the method, which (on Mac) needed to be skipped with an already-initialized bool. There was a 'while' loop which (on Mac) needed to be turned into an 'if' instead so the method would return after every frame. Rename LLApp::mainLoop() to frame(). Propagate through subclasses LLAppViewer and LLCrashLogger. Document the fact that frame() returns true to mean "done." (This was always the case, but had to be inferred from the code.) Rename the Mac Objective-C function mainLoop to oneFrame. Rename the C++ free function it calls from runMainLoop() to pumpMainLoop(). Add comments to llappdelegate-objc.mm explaining (inferred) control flow. Change the Linux viewer main() and the Windows viewer WINMAIN() from a single LLAppViewer::mainLoop() call to repeatedly call frame() until it returns true. Move initialization code from the top of LLAppViewer::frame() to the init() method, where it more properly belongs. Remove corresponding mMainLoopInitialized flag (and all references) from LLAppViewer. Remove 'while (! LLApp::isExiting())' (or on Mac, 'if (! LLApp::isExiting())') from LLAppViewer::frame() -- thus unindenting the whole body of the 'while' and causing many lines of apparent change. (Apologies to reviewers.) There are four LLApp states: APP_STATUS_RUNNING, APP_STATUS_QUITTING, APP_STATUS_STOPPED and APP_STATUS_ERROR. Change LLAppViewer::frame() return value from (isExiting()) (QUITTING or ERROR) to (! isRunning()). I do not know under what circumstances the state might transition to STOPPED during a frame() call, but I'm quite sure that if it does, we don't want to call frame() again. We only want a subsequent call if the state is RUNNING. Also rename mainLoop() method in LLCrashLogger subclasses LLCrashLoggerWindows, LLCrashLoggerMac, LLCrashLoggerLinux. Of course it's completely up to the frame() method whether to yield control; none of those in fact do. Honor protocol by returning true (frame() is done), even though each one's main() caller ignores the return value. In fact LLCrashLoggerWindows::mainLoop() wasn't using the return protocol correctly anyway, returning wParam or 0 or 1 -- possibly because the return protocol was never explicitly documented. It should always return true: "I'm done, don't call me again."
2015-11-10remove execute permission from many files that should not have itOz Linden
2014-04-22MergeXiaohong Bao
2014-04-14Fix for MAINT-5707 bad breakpad behavior with teleport linksAura Linden
2014-04-07merge with releaseRichard Linden
2014-01-22Removed debug line.Aura Linden
2014-01-22char vs wchar_t FIGHTAura Linden
2013-12-04Removed debugging code.Aura Linden
2013-12-03Creating a cleaner branchAura Linden
2013-07-30Summer cleaning - removed a lot of llcommon dependencies to speed up build timesRichard Linden
consolidated most indra-specific constants in llcommon under indra_constants.h fixed issues with operations on mixed unit types (implicit and explicit) made LL_INFOS() style macros variadic in order to subsume other logging methods such as ll_infos added optional tag output to error recorders
2013-03-29Update Mac and Windows breakpad builds to latestGraham Madarasz
2013-03-28Google Breakpad FixGraham Madarasz (Graham Linden)
2010-11-02STORM-422 FIXED Added command line option "-disablecrashlogger" to disable ↵Vadim ProductEngine
crash logger. This is a patch originally written by Robin Cornelius. I made it work with Google Breakpad.
2010-08-13Change license from GPL to LGPL (version 2.1)Oz Linden
2010-05-28Write breakpad minidump files to the SL log directory.Lynx Linden
Also, clean out old minidump files when we start up.
2010-05-27Removed the SyncErrorHandler from llapp and llappviewer*.Lynx Linden
This was only used for the Linux client to dump a stack trace to stack_trace.log, which is no longer needed now that we are using Google Breakpad. I also removed all of the stack printing code from llappviewerlinux.cpp.
2010-05-26Hooked up Google Breakpad for the Linux client too.Lynx Linden
Using Alain's Darwin reporter callback was all that was needed. Also replaced the call that exposed the breakpad exception class with a call to just write out the minidump, as that was the only reason for exposing it. Now clients don't need to know about Google Breakpad.
2010-05-25Mac crash behavior matches windows and linux: report on crash (not after ↵Andrew A. de Laix
restart). This is OK because we use Breakpad generated minidumps instead of OS generated ones.
2010-05-24Just enough hackery to get minidumps into Wind'ohs crash reports. Code ↵Andrew A. de Laix
clean up needed.
2010-05-21New google breakpad package for windows with winsock2 fix, and DLL CRT ↵brad kittenbrink
library usage. Also moved headers into libraries/include/google_breakpad. Mac and linux packages to come shortly.
2010-05-21Switch Darwin to use breakpad minidump rather than os generated crash stack.Andrew A. de Laix
2010-03-29EXT-3075 : Remove swear words from comments across viewerLoren Shih
This bugs me in a minor way. Did a search-and-cleanup on various swear words.
2009-12-14Fix for mac build post-merge.brad kittenbrink
2009-12-07Fixups for things broken after the last merge and for the linux build.brad kittenbrink
2009-11-13Refactoring of llviewerprecompiledheaders.h to hopefully increase stabilitybrad kittenbrink
and reduce unnecessary dependencies and incredibuild wedging. Hopefully in the long run this will reduce build time. Also cleaned up a lot of header file usage to conform better to the coding standard. reviewed by james and steve.
2009-09-01Merged login-api with viewer-2.0.0-3 up through r132290.brad kittenbrink
2009-08-29Partial merge of: viewer-2.0.0-3@131138 texture-pipeline-3@131862 -> ↵Steven Bennetts
viewer-2.0.0-3 Includes: * DEV-31909 VWR-13251: Revise lscript_library.cpp to allow localization of LSL editor hovertips * DEV-21938 llSHA1String does not appear where expected in the dropdown "Insert" menu in the LSL editor * Some cleanup to llerror so that it doesn't depend on llfixedbuffer * A few misc. server specific changes not related to the texture-pipeline changes (llapp, lloptioninterface)
2009-07-30Fixes to build on linux for DEV-35401.palmer@eniac54.lindenlab.com
Moves libllcommon.so to a staging dir for unit tests to work and gets rid of LL_COMMON_API in forward declarations
2009-05-18Result of svn merge -r119432:120464 ↵Aaron Brashears
svn+ssh://svn/svn/linden/branches/http_database/merge-03 into trunk. QAR-1462
2009-01-17svn merge -r108142:108148 ↵Andrew Meadows
svn+ssh://svn.lindenlab.com/svn/linden/qa/maint-server/maint-server-5-r108113
2009-01-08Result of svn merge -r107256:107258 ↵Aaron Brashears
svn+ssh://svn/svn/user/phoenix/license_2009_merge into trunk. QAR-1165
2008-12-04Merging from server/server-1.25 back to trunk.Robert Knop
svn merge -r99446:104838 svn+ssh://svn.lindenlab.com/svn/linden/branches/server/server-1.25 Conflicts resolved by Prospero, except for one scary conflict in SendConfirmationEmail.php which was resolved by jarv.
2008-04-17QAR-449 Viewer 1.20 RC 0Steven Bennetts
merge Branch_1-20-Viewer -r 84060 : 84432 -> release
2008-04-17Undid previous commit (bogus merge)Steven Bennetts
2008-04-17QAR-449 Viewer 1.20 RC 0Steven Bennetts
merge Branch_1-20-Viewer -r 84060 : 84432 -> release
2008-04-16QAR-455 Launcher and Heartbeat fixes MergeMeAdam Moss
svn merge svn+ssh://svn.lindenlab.com/svn/linden/release@84853 svn+ssh://svn.lindenlab.com/svn/linden/branches/moss/signalcrap-merge1
2007-10-04Result of svn merge -r71162:71205 ↵Aaron Brashears
svn+ssh://svn/svn/linden/branches/new-license into release. only changes files which are not deployed or the comments section of code.
2007-01-03corrected, removed, and updated comments throughout the code to be more ↵Aaron Brashears
useful. no code changes. SL-13762
2007-01-02Print done when done.James Cook