phoenix-firestorm/indra/test
Nat Goodspeed 71ec081dbf DRTVWR-476: Infrastructure to help manage long-lived coroutines.
Introduce LLCoros::Stop exception, with subclasses Stopping, Stopped and
Shutdown. Add LLCoros::checkStop(), intended to be called periodically by any
coroutine with nontrivial lifespan. It checks the LLApp status and, unless
isRunning(), throws one of these new exceptions.

Make LLCoros::toplevel() catch Stop specially and log forcible coroutine
termination.

Now that LLApp status matters even in a test program, introduce a trivial
LLTestApp subclass whose sole function is to make isRunning() true.
(LLApp::setStatus() is protected: only a subclass can call it.) Add LLTestApp
instances to lleventcoro_test.cpp and lllogin_test.cpp.

Make LLCoros::toplevel() accept parameters by value rather than by const
reference so we can continue using them even after context switches.

Make private LLCoros::get_CoroData() static. Given that we've observed some
coroutines living past LLCoros destruction, making the caller call
LLCoros::instance() is more dangerous than encapsulating it within a static
method -- since the encapsulated call can check LLCoros::wasDeleted() first
and do something reasonable instead. This also eliminates the need for both a
const and non-const overload.

Defend LLCoros::delete_CoroData() (cleanup function for fiber_specific_ptr for
CoroData, implicitly called after coroutine termination) against calls after
~LLCoros().

Add a status string to coroutine-local data, with LLCoro::setStatus(),
getStatus() and RAII class TempStatus.

Add an optional 'when' string argument to LLCoros::printActiveCoroutines().
Make ~LLCoros() print the coroutines still active at destruction.
2019-10-22 16:49:29 -04:00
..
CMakeLists.txt DRTVWR-476: Add Sync class to help with stepwise coroutine tests. 2019-09-11 09:33:07 -04:00
blowfish.1.bin
blowfish.2.bin
blowfish.digits.txt remove execute permission from many files that should not have it 2015-11-10 09:48:56 -05:00
blowfish.pl
catch_and_store_what_in.h remove execute permission from many files that should not have it 2015-11-10 09:48:56 -05:00
debug.h SL-793: Add LL_PRETTY_FUNCTION macro wrapping __PRETTY_FUNCTION__ 2018-12-29 10:19:01 -05:00
io.cpp Restore the ability for sockets to specify the interface to listen on 2018-08-30 16:25:45 -04:00
llapp_tut.cpp DRTVWR-418: Unify control flow through LLAppViewer across platforms. 2016-06-30 16:51:50 -04:00
llassetuploadqueue_tut.cpp remove execute permission from many files that should not have it 2015-11-10 09:48:56 -05:00
llblowfish_tut.cpp remove execute permission from many files that should not have it 2015-11-10 09:48:56 -05:00
llbuffer_tut.cpp remove execute permission from many files that should not have it 2015-11-10 09:48:56 -05:00
lldatapacker_tut.cpp remove execute permission from many files that should not have it 2015-11-10 09:48:56 -05:00
lldoubledispatch_tut.cpp remove execute permission from many files that should not have it 2015-11-10 09:48:56 -05:00
llevents_tut.cpp DRTVWR-476: Kill LLEventQueue, per-frame LLEventPump::flush() calls. 2019-10-17 13:26:51 -04:00
llhttpdate_tut.cpp remove execute permission from many files that should not have it 2015-11-10 09:48:56 -05:00
llhttpnode_tut.cpp remove execute permission from many files that should not have it 2015-11-10 09:48:56 -05:00
lliohttpserver_tut.cpp remove execute permission from many files that should not have it 2015-11-10 09:48:56 -05:00
llmessageconfig_tut.cpp remove execute permission from many files that should not have it 2015-11-10 09:48:56 -05:00
llmessagetemplateparser_tut.cpp remove execute permission from many files that should not have it 2015-11-10 09:48:56 -05:00
llpermissions_tut.cpp remove execute permission from many files that should not have it 2015-11-10 09:48:56 -05:00
llpipeutil.cpp remove execute permission from many files that should not have it 2015-11-10 09:48:56 -05:00
llpipeutil.h remove execute permission from many files that should not have it 2015-11-10 09:48:56 -05:00
llsaleinfo_tut.cpp remove execute permission from many files that should not have it 2015-11-10 09:48:56 -05:00
llsd_new_tut.cpp remove execute permission from many files that should not have it 2015-11-10 09:48:56 -05:00
llsdmessagebuilder_tut.cpp remove execute permission from many files that should not have it 2015-11-10 09:48:56 -05:00
llsdmessagereader_tut.cpp remove execute permission from many files that should not have it 2015-11-10 09:48:56 -05:00
llsdtraits.h remove execute permission from many files that should not have it 2015-11-10 09:48:56 -05:00
llsdutil_tut.cpp remove execute permission from many files that should not have it 2015-11-10 09:48:56 -05:00
llservicebuilder_tut.cpp remove execute permission from many files that should not have it 2015-11-10 09:48:56 -05:00
llstreamtools_tut.cpp DRTVWR-418: Fix streamtools test. 2016-12-19 15:58:52 -05:00
lltemplatemessagebuilder_tut.cpp remove execute permission from many files that should not have it 2015-11-10 09:48:56 -05:00
lltestapp.h DRTVWR-476: Infrastructure to help manage long-lived coroutines. 2019-10-22 16:49:29 -04:00
lltimestampcache_tut.cpp remove execute permission from many files that should not have it 2015-11-10 09:48:56 -05:00
lltranscode_tut.cpp remove execute permission from many files that should not have it 2015-11-10 09:48:56 -05:00
lltut.cpp remove execute permission from many files that should not have it 2015-11-10 09:48:56 -05:00
lltut.h remove execute permission from many files that should not have it 2015-11-10 09:48:56 -05:00
lluserrelations_tut.cpp remove execute permission from many files that should not have it 2015-11-10 09:48:56 -05:00
llxorcipher_tut.cpp remove execute permission from many files that should not have it 2015-11-10 09:48:56 -05:00
message_tut.cpp Automated merge with ssh://bitbucket.org/lindenlab/viewer-release 2016-08-30 11:36:06 -04:00
mock_http_client.cpp remove execute permission from many files that should not have it 2015-11-10 09:48:56 -05:00
mock_http_client.h remove execute permission from many files that should not have it 2015-11-10 09:48:56 -05:00
namedtempfile.h remove execute permission from many files that should not have it 2015-11-10 09:48:56 -05:00
prim_linkability_tut.cpp remove execute permission from many files that should not have it 2015-11-10 09:48:56 -05:00
sync.h DRTVWR-476: Add Sync class to help with stepwise coroutine tests. 2019-09-11 09:33:07 -04:00
test.cpp DRTVWR-476: Make test program --debug switch work like LOGTEST=DEBUG. 2019-10-14 15:41:09 -04:00
test.h remove execute permission from many files that should not have it 2015-11-10 09:48:56 -05:00
test_llmanifest.py