Go to file
Nat Goodspeed 955b967623 SL-16024: Add ThreadSafeSchedule, a timestamped LLThreadSafeQueue.
ThreadSafeSchedule orders its items by timestamp, which can be passed either
implicitly or explicitly. The timestamp specifies earliest delivery time: an
item cannot be popped until that time.

Add initial tests.

Tweak the LLThreadSafeQueue base class to support ThreadSafeSchedule:
introduce virtual canPop() method to report whether the current head item is
available to pop. The base class unconditionally says yes, ThreadSafeSchedule
says it depends on whether its timestamp is still in the future.

This replaces the protected pop_() overload accepting a predicate. Rather than
explicitly passing a predicate through a couple levels of function call, use
canPop() at the level it matters. Runtime behavior that varies depending on
an object's leaf class is what virtual functions were invented for.

Give pop_() a three-state enum return so pop() can distinguish between "closed
and empty" (throws exception) versus "closed, not yet drained because we're
not yet ready to pop the head item" (waits).

Also break out protected tryPopUntil_() method, the body logic of
tryPopUntil(). The public method locks the data structure, the protected
method requires that its caller has already done so.

Add chrono.h with a more full-featured LL::time_point_cast() function than the
one found in <chrono>, which only converts between time_point durations, not
between time_points based on different clocks.
2021-10-05 17:31:53 -04:00
debian
…
doc Merge branch 'master' into DRTVWR-516-maint 2021-06-25 00:51:02 +03:00
etc
…
indra SL-16024: Add ThreadSafeSchedule, a timestamped LLThreadSafeQueue. 2021-10-05 17:31:53 -04:00
scripts SL-15031 - more viewerstats.py support for cleaning up unused settings 2021-04-07 19:48:27 +01:00
.clang-format DRTVWR-497 tweak clang-format rules for argument packing 2020-08-24 13:52:57 -06:00
.gitignore DRTVWR-476: Merge branch 'master' of lindenlab/viewer into d476 2020-06-23 22:03:43 -04:00
.hgtags
…
BuildParams SL-10297: Modify LL_ERRS and other deliberate crashes to avoid a common stack frame 2019-01-16 11:05:55 -05:00
README.md Revert "Merge branch 'master' of https://bitbucket.org/lindenlab/viewer into DRTVWR-519" 2021-03-08 13:56:16 +00:00
autobuild.xml Merge with Master after Viewer Release (also fixed some glaring automerge screw ups) 2021-07-19 17:43:19 -07:00
build.sh SL-10297: Merge branch 'sl-10297-oz' into sl-10297. 2021-05-12 13:56:19 -04:00

README.md

Second Life Viewer

This project manages the source code for the Second Life Viewer.

This source is available as open source; for details on licensing, see the licensing page on the Second Life wiki

For information on how to use and contribute to this, see the open source portal on the wiki.

To download the current default version, visit the download page. For even newer versions try the Alternate Viewers page