Commit Graph

126 Commits (c785a0e955478dcad867af55bcd44111a718aefd)

Author SHA1 Message Date
Brad Linden a548c16989 Merge remote-tracking branch 'origin/main' into DRTVWR-559 2023-03-29 14:54:06 -07:00
Dave Parks 41e32126d4 SL-17484 Unit test build fix (remove priority parameters). 2022-05-24 17:48:41 -05:00
Nicky 283c2a20cc Remove setting of HEADER_FILE_ONLY on .h* files, cmake automatically
sets the property on those.
2022-05-01 00:38:40 +02:00
Nicky 786b291d9c Move CMake files to modernized cmake syntax, step 1.
Change projects to cmake targetsto get rid of havig to hardcore
include directories and link libraries in consumer projects.
2022-04-06 16:32:52 +02:00
Callum Prentice 8631a7a077 Merge with tip of Master after a Viewer release 2021-07-19 14:35:44 -07:00
Andrey Lihatskiy 2922c59316 Merge branch 'sl-10297' into DRTVWR-516-maint 2021-05-21 20:31:53 +03:00
Nat Goodspeed d313d7021f SL-15200: Add LLApp::sleep(duration) methods.
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-05-17 13:37:13 -04:00
Callum Prentice 168d177197 This set of changes reverts the merge with master (git revert c83e740) and results in a version of the DRTVWR-519 that matches what was presemt before it was deployed as a release viewer *plus* 3 small fixes from Maxim (See commits). This branch can now be used for additional fixes before eventually being used to release D-519 as normal 2021-03-09 14:39:51 -08:00
Andrey Lihatskiy ec824a16d5 Merge branch 'master' into DRTVWR-516-maint 2021-03-09 21:57:53 +02:00
Brad Payne (Vir Linden) c83e740ef9 Revert "Merge branch 'master' of https://bitbucket.org/lindenlab/viewer into DRTVWR-519"
This reverts commit e61f485a04, reversing
changes made to 00c47d079f.
2021-03-08 13:56:16 +00:00
Andrey Lihatskiy 135d54a4ff Merge branch 'master' into DRTVWR-516-maint 2021-03-02 21:41:37 +02:00
Callum Prentice d9448c6f52 The folder where the disk cache lives was originally renamed from llvfs to llcache but @henri's suggestion that that doesn't reflect the other files in the same place and it should be llfilesystem is a good one so I changed it over 2020-09-17 09:45:06 -07:00
Callum Prentice 2e6f516411 Renamed the references to LLVFile and llvfile.* source code plus cmake scripts to use a different name - lldiskcache - since that more closely resembles what it is (or will be) now that the VFA is no more 2020-09-16 21:12:53 -07:00
Callum Prentice 3fc07dea01 First part of change to remove LLVFS from the Viewer. Consists of code changes to remove LLVFS and LLVFSThread classes along with the associated source files. The existing llvfs folder is renamed to llcache. Also includes changes to CMake script in many places to reflect changes. Eventually, llvfile source file and class will be renamed but that is not in this change. 2020-09-16 18:53:24 -07:00
Andrey Kleshchev 8c8eac256b SL-13927 Turn SSL verification On for all SL services in viewer 2020-09-11 16:32:19 +03:00
Oz Linden a9d271c5a2 SL-10297 merged 6.4.7 2020-08-24 13:11:07 -04:00
Nicky 69de6ece31 Use reinterpret_cast to pass pthread_self (pthread_t) into CRYPTO_THREADID_set_pointer (void*). 2020-03-25 18:40:45 -04:00
Nat Goodspeed 663b9ff6af DRTVWR-476: pthread_self() also needs CRYPTO_THREADID_set_pointer() 2020-03-25 16:12:46 -04:00
Nat Goodspeed 3753dbd5ed DRTVWR-476: Use OpenSSL API suitable for 64-bit pointers.
In three different places we use the same pattern: an ssl_thread_id_callback()
function (a static member of LLCrashLogger, in that case) that used to be
passed to CRYPTO_set_id_callback() and therefore returned an unsigned long
representing the ID of the current thread.

But GetCurrentThread() is a HANDLE, an alias for a pointer, and you can't
uniquely cram a 64-bit pointer into an unsigned long.

Fortunately OpenSSL has a more modern API for retrieving thread ID. Pass
each ssl_thread_id_callback() function to CRYPTO_THREADID_set_callback()
instead, converting it to accept CRYPTO_THREADID* and call
CRYPTO_THREADID_set_pointer() or CRYPTO_THREADID_set_numeric() as appropriate().
2020-03-25 16:12:46 -04:00
Oz Linden 9627eddb10 document that old crash logger is not used in production builds 2019-06-12 08:51:01 -04:00
andreykproductengine fa15830e02 SL-10291 Replace apr_atomic with standard C++11 functionality 2019-01-15 18:31:17 +02:00
Oz Linden d62ad1ef8a merge changes for 5.0.8-release 2017-10-11 09:13:55 -04:00
andreykproductengine 9d9c04b044 MAINT-7691 One more crashreported issue with unicode in windows 2017-08-30 17:44:21 +03:00
andreykproductengine 8f49a267da MAINT-7691 Crash report is not generated/sent if appdata path contains unicode symbols 2017-08-29 19:47:20 +03:00
Oz Linden 0a7fd3686a Look for logcontrol-dev.xml in the user settings directory 2017-02-27 09:52:50 -05:00
Nat Goodspeed 704c53b3c5 MAINT-5232: Merge up to VLC viewer from viewer-release 2016-10-11 10:59:17 -04:00
Nat Goodspeed c92eb7e591 Automated merge with ssh://bitbucket.org/lindenlab/viewer-release 2016-08-30 11:36:06 -04:00
Nat Goodspeed 464a0df4c1 DRTVWR-418: Unify control flow through LLAppViewer across platforms.
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."
2016-06-30 16:51:50 -04:00
Oz Linden 950c41d184 merge 4.0.4-release and MAINT-5974 2016-05-06 10:28:42 -04:00
Oz Linden 6de1d311f9 reset crash dump upload retries and timeouts 2016-04-20 12:26:28 -04:00
Oz Linden 928f8fb608 reset crash dump upload retries and timeouts 2016-04-20 12:26:28 -04:00
Oz Linden ddd476c90c MAINT-6322 fix merge error that prevented crash dumps from being located for upload (and add better logging) 2016-04-20 11:52:00 -04:00
Oz Linden ecdb190d70 MAINT-6322 fix merge error that prevented crash dumps from being located for upload (and add better logging) 2016-04-20 11:52:00 -04:00
Oz Linden a6bc849992 add logging around crash reporting, with minor code cleanups 2016-04-13 14:41:38 -04:00
Oz Linden 8b5a8e3b57 merge changes for MAINT-5974 2016-05-04 13:45:15 -04:00
Oz Linden 57488bc381 add logging around crash reporting, with minor code cleanups 2016-04-13 14:41:38 -04:00
Oz Linden ed38b5c923 merge changes for MAINT-5974 2016-04-08 11:32:48 -04:00
Oz Linden 9be58e915a merge with 4.0.3-release 2016-04-04 15:53:09 -04:00
Glenn Glazer daf8b882a1 maint-5974 / maint-5422: rip crash logger save behavior out of windows logger 2016-03-08 11:55:48 -08:00
Glenn Glazer 68745390ea maint-5974 / maint-5422: remove extraneous return statement 2016-03-08 09:39:05 -08:00
Glenn Glazer 442c4842ab maint-5974/maint-5422: viewer changes for new crash reporting, remove no send logic 2016-03-08 08:09:11 -08:00
Rider Linden b9292fdef7 MAINT-6099: One more log message. 2016-01-29 16:11:52 -08:00
Rider Linden af47bfff6b MAINT-6099: Add a check on the result of requestPostWithLLSD for error. Also log the failed URL. 2016-01-29 14:11:28 -08:00
Oz Linden c8726aba30 remove execute permission from many files that should not have it 2015-11-10 09:48:56 -05:00
Rider Linden bbb9d4f21b MAINT-5732: Change to the way event polling handles error conditions and cancel calls.
Refactor any remaining LLCore::HTTPHandlers to use boost::shared_ptr
Started minor refactor in the materials manager into coroutines (unfinished)
2015-10-14 17:46:24 -07:00
Glenn Glazer b09f0a120e maint-5422 changes and merge from release 2015-09-16 14:21:03 -07:00
Rider Linden 907efc9cc9 MAINT-5507: Remove llcurl, move constant values and untilities to llcorehttp lib 2015-09-15 17:01:26 -07:00
Rider Linden fe5567639d Change HttpOptions::ptr_t to be shared_ptr<> rather than intrusive. 2015-07-08 12:09:36 -07:00
Rider Linden 1138c57f9a Convert LLCore::HttpHeaders to use shared_ptr<> rather than an intrusive_ptr<> for refrence counting. 2015-07-08 10:01:27 -07:00
Nat Goodspeed 80d17b2dd9 MAINT-4952: Use IntrusivePtr for BufferArray,HttpHeaders,HttpOptions.
Specifically, change the ptr_t typedefs for these LLCore classes to use
IntrusivePtr rather than directly using boost::intrusive_ptr. This allows us
to use a simple ptr_t(raw ptr) constructor rather than having to remember to
code ptr_t(raw ptr, false) everywhere. In fact, the latter form is now invalid:
remove the now-extraneous 'false' constructor parameters.
2015-06-29 17:19:51 -04:00