Commit Graph

58014 Commits (9edad026f4494de1a6f02ecc3f477faa27a361ef)

Author SHA1 Message Date
Ansariel d6f55d9047 Merge Firestorm LGPL 2019-11-28 17:04:58 +01:00
AndreyL ProductEngine f89c9e9b20 Downstream merge from lindenlab/viewer-serval 2019-11-27 22:57:13 +02:00
AndreyL ProductEngine 216fe3d47f Merged in pe_devs/494-wassail 2019-11-27 22:36:28 +02:00
andreykproductengine d3f389a38c SL-12326 Textures' apr pool crash fix 2019-11-26 17:21:43 +02:00
andreykproductengine 28eca3aeb4 SL-12326 Textures' apr pool crash fix 2019-11-26 17:21:43 +02:00
Ansariel bae5bc69fb Let's see if this helps with attachments randomly ending up in L&F: If there is a previous folder ID, just move it back to where they came from 2019-11-24 11:22:14 +01:00
Nat Goodspeed b6befdf713 DRTVWR-494: Merge copy-paste-friendly test output to tip 2019-11-23 22:22:47 -05:00
Nat Goodspeed ba2d727ad4 DRTVWR-494: Merge LLSingleton thread defense to tip 2019-11-23 22:22:03 -05:00
Nat Goodspeed c6ebb20069 DRTVWR-494: Improve thread safety of LLSingleton machinery.
Remove warnings about LLSingleton not being thread-safe because, at this point,
we have devoted considerable effort to trying to make it thread-safe.

Add LLSingleton<T>::Locker, a nested class which both provides a function-
static mutex and a scoped lock that uses it. Instantiating Locker, which has a
nullary constructor, replaces the somewhat cumbersome idiom of declaring a
std::unique_lock<std::recursive_mutex> lk(getMutex);

This eliminates (or rather, absorbs) the typedefs and getMutex() method from
LLParamSingleton. Replace explicit std::unique_lock declarations in
LLParamSingleton methods with Locker declarations.

Remove LLSingleton<T>::SingletonInitializer nested struct. Instead of
getInstance() relying on function-static initialization to protect (only)
constructSingleton() calls, explicitly use a Locker instance to cover its
whole scope, and make the UNINITIALIZED case call constructSingleton().
Rearrange cases so that after constructSingleton(), control falls through to
the CONSTRUCTED case and the finishInitializing() call.

Use a Locker instance in other public-facing methods too: instanceExists(),
wasDeleted(), ~LLSingleton(). Make destructor protected so it can only be called
via deleteSingleton() (but must be accessible to subclasses for overrides).

Remove LLSingletonBase::get_master() and get_initializing(), which permitted
directly manipulating the master list and the initializing stack without any
locking mechanism. Replace with get_initializing_size().

Similarly, replace LLSingleton_manage_master::get_initializing() with
get_initializing_size(). Use in constructSingleton() in place of
get_initializing().size().

Remove LLSingletonBase::capture_dependency()'s list_t parameter, which
accepted the list returned by get_initializing(). Encapsulate that retrieval
within the scope of the new lock in capture_dependency().

Add LLSingleton_manage_master::capture_dependency(LLSingletonBase*, EInitState)
to forward (or not) a call to LLSingletonBase::capture_dependency(). Nullary
LLSingleton<T>::capture_dependency() calls new LLSingleton_manage_master method.

Equip LLSingletonBase::MasterList with a mutex of its own, separate from the
one donated by the LLSingleton machinery, to serialize use of MasterList data
members. Introduce MasterList::Lock nested class to lock the MasterList mutex
while providing a reference to the MasterList instance. Introduce subclasses
LockedMaster, which provides a reference to the actual mMaster master list
while holding the MasterList lock; and LockedInitializing, which does the same
for the initializing list. Make mMaster and get_initializing_() private so
that consuming code can *only* access those lists via LockedInitializing and
LockedMaster.

Make MasterList::cleanup_initializing_() private, with a LockedInitializing
public forwarding method. This avoids another call to MasterList::instance(),
and also mandates that the lock is currently held during every call.

Similarly, move LLSingletonBase::log_initializing() to a LockedInitializing
log() method.
2019-11-23 22:18:45 -05:00
Nat Goodspeed 4cb6e9ee08 DRTVWR-494: Show copy-paste-friendly env vars and test command.
Moderately often I want to copy the (long) integration test program path from
build output and rerun the test program by hand. But typically we need
environment variables set as well so it can find its dynamic libraries. This
has resulted in my copying parts of several lines of build output, then
pasting to a command prompt, then hand-tweaking the pasted text so it makes
sense as a command.

Streamline run_build_test.py output so less hand-tweaking is needed.
2019-11-23 22:16:39 -05:00
andreykproductengine 3d88b2587d SL-12322 addTriangle crash 2019-11-21 17:49:03 +02:00
AndreyL ProductEngine 8a0338bda0 Backed out changeset: 3ea1714b65b8 2019-11-20 21:41:27 +02:00
Ansariel 55fed317ab Fix EOL 2019-11-19 23:59:09 +01:00
Ansariel 3833f8864d Fix texture surface area not properly shown in nametag 2019-11-19 23:54:57 +01:00
Ansariel a154630ecd Merge 494-maint-wassail 2019-11-19 21:51:54 +01:00
Ansariel 3bc189bda7 Merge Firestorm LGPL 2019-11-19 20:28:09 +01:00
andreykproductengine fed4d3391c SL-9699 Fixed processing of placeholder #2 2019-11-18 21:46:19 +02:00
andreykproductengine e32a2e2f8a SL-9699 Fixed processing of placeholder 2019-11-17 18:21:49 +02:00
andreykproductengine 75d9100625 SL-9699 First login panel checkbox was misinterpreted 2019-11-15 19:47:03 +02:00
Ansariel 8471c5eea3 Build fix 2019-11-14 18:29:46 +01:00
Ansariel 67d3071282 Use exoflickr code for uploading snapshots to Flickr in advent of the upcoming removal of SLShare (and make it actually work again) 2019-11-14 17:26:52 +01:00
Ansariel e442252dd7 Sync this 2019-11-13 22:34:00 +01:00
Ansariel e823a0f751 Merge 2019-11-13 19:33:38 +01:00
andreykproductengine b52f8573e4 SL-12272 Ordered Shutdown log spam 2019-11-13 16:17:16 +02:00
andreykproductengine bda99bf2fc SL-12272 Ordered Shutdown log spam 2019-11-13 16:17:16 +02:00
Ansariel a3737fa1c4 Fix viewer hang at exit 2019-11-13 17:04:27 +01:00
andreykproductengine f9fdae6778 SL-9699 Field should be populated as long as there is data, regardless of 'remember password' 2019-11-13 12:56:07 +02:00
AndreyL ProductEngine 7ffe8d0a51 SL-11964 Removed SL Share from the viewer 2019-11-13 05:32:05 +02:00
ziree ddb0149056 Fix crash on startup on Linux with vintage skin enabled 2019-11-12 22:51:28 +01:00
Ansariel 317c935339 Merge viewer-lynx 2019-11-12 19:19:42 +01:00
Ansariel fd4b8a7bb1 Merge Firestorm LGPL 2019-11-12 18:45:02 +01:00
andreykproductengine ce24fab6b1 Fix instance existance check 2019-11-12 16:07:36 +02:00
andreykproductengine db344c5844 Fix instance existance check 2019-11-12 16:07:36 +02:00
andreykproductengine ac0bbba7a5 SL-9699 Updated tooltip and initial checkbox value 2019-11-12 11:45:39 +02:00
AndreyL ProductEngine 91fa31c065 Downstream merge from lindenlab/viewer-serval 2019-11-12 04:24:35 +02:00
AndreyL ProductEngine f13cc44f89 Post-merge fixes 2019-11-12 04:21:49 +02:00
AndreyL ProductEngine 5f731d84cb Downstream merge from 494-maint-wassail 2019-11-12 02:37:15 +02:00
AndreyL ProductEngine e96d0d5e30 Buildfix 2019-11-12 01:59:44 +02:00
Ansariel 88e8eec81d Merge LL viewer-release 6.3.4 2019-11-12 00:22:25 +01:00
Ansariel bf18b7c86f Merge Firestorm LGPL 2019-11-12 00:20:56 +01:00
AndreyL ProductEngine 84f3b2865f Merged in lindenlab/viewer-release 2019-11-12 00:39:07 +02:00
Nat Goodspeed 78bdf57ad6 increment viewer version to 6.3.5 2019-11-11 16:39:40 -05:00
Nat Goodspeed 55a5a2f0a7 Added tag 6.3.4-release for changeset 4033b3f57e76 2019-11-11 16:39:38 -05:00
andreykproductengine 4aa9dfec74 SL-9699 Fixed tooltip warning 2019-11-10 15:18:01 +02:00
Ansariel 429d999f47 Fix various XUI parser warnings 2019-11-09 18:41:43 +01:00
Ansariel fb08132407 Always pass viewer flavor to viewer_manifest.py 2019-10-30 23:52:09 +01:00
Ansariel 339c3789c2 Merge viewer-ordered-shutdown 2019-10-30 21:07:50 +01:00
Ansariel 71a5864533 Merge Firestorm LGPL 2019-10-30 21:05:39 +01:00
Ansariel 6e340961c0 Merge viewer-neko 2019-10-30 18:05:01 +01:00
Ansariel 961074b7e8 Merge viewer-lynx 2019-10-30 00:14:33 +01:00