phoenix-firestorm/indra/llmessage
Nat Goodspeed ce36ef8242 DRTVWR-476: Use LLThreadSafeQueue::close() to shut down coprocs.
The tactic of pushing an empty QueuedCoproc::ptr_t to signal coprocedure close
only works for LLCoprocedurePools with a single coprocedure (e.g. "Upload" and
"AIS"). Only one coprocedureInvokerCoro() coroutine will pop that empty
pointer and shut down properly -- the rest will continue waiting indefinitely.

Rather than pushing some number of empty pointers, hopefully enough to notify
all consumer coroutines, close() the queue. That will notify as many consumers
as there may be.

That means catching LLThreadSafeQueueInterrupt from popBack(), instead of
detecting empty pointer.

Also, if a queued coprocedure throws an exception, coprocedureInvokerCoro()
logs it as before -- but instead of rethrowing it, the coroutine now loops
back to wait for more work. Otherwise, the number of coroutines servicing the
queue dwindles.
2020-03-25 19:25:42 -04:00
..
tests DRTVWR-476: Introduce LLCoprocedureManager::close(). Use in tests. 2020-03-25 19:07:22 -04:00
CMakeLists.txt Began work for adding a test covering LLCoprocedureManager 2020-03-25 18:39:21 -04:00
llassetstorage.cpp
llassetstorage.h
llavatarname.cpp
llavatarname.h
llavatarnamecache.cpp DRTVWR-476, SL-12197: Don't throw Stopping from main coroutine. 2020-03-25 19:24:25 -04:00
llavatarnamecache.h DRTVWR-493 LLAvatarNameCache to singletone 2019-07-03 20:06:47 +03:00
llblowfishcipher.cpp
llblowfishcipher.h
llbuffer.cpp DRTVWR-494: Use std:🧵:id for LLThread::currentID(). 2020-03-25 15:28:17 -04:00
llbuffer.h
llbufferstream.cpp DRTVWR-494: Use std:🧵:id for LLThread::currentID(). 2020-03-25 15:28:17 -04:00
llbufferstream.h
llcachename.cpp
llcachename.h
llchainio.cpp
llchainio.h
llcipher.h
llcircuit.cpp
llcircuit.h
llclassifiedflags.cpp
llclassifiedflags.h
llcoproceduremanager.cpp DRTVWR-476: Use LLThreadSafeQueue::close() to shut down coprocs. 2020-03-25 19:25:42 -04:00
llcoproceduremanager.h DRTVWR-476: Introduce LLCoprocedureManager::close(). Use in tests. 2020-03-25 19:07:22 -04:00
llcorehttputil.cpp
llcorehttputil.h
lldatapacker.cpp SL-4150 Rename htonmemcpy 2019-07-24 16:58:24 +03:00
lldatapacker.h
lldbstrings.h
lldispatcher.cpp
lldispatcher.h
lleventflags.h
llexperiencecache.cpp [DRTVWR-476] - conflicts with a mac macro 2020-03-25 18:40:44 -04:00
llexperiencecache.h
llextendedstatus.h
llfiltersd2xmlrpc.cpp
llfiltersd2xmlrpc.h
llfollowcamparams.h
llhost.cpp
llhost.h
llhttpnode.cpp
llhttpnode.h
llhttpnodeadapter.h
llhttpsdhandler.cpp
llhttpsdhandler.h
llinstantmessage.cpp
llinstantmessage.h
llinvite.h
lliobuffer.cpp
lliobuffer.h
lliohttpserver.cpp
lliohttpserver.h
lliopipe.cpp
lliopipe.h
lliosocket.cpp SL-2797 SOCKS5 not working reliably 2019-04-17 18:24:42 +03:00
lliosocket.h Restore the ability for sockets to specify the interface to listen on 2018-08-30 16:25:45 -04:00
llioutil.cpp
llioutil.h
llloginflags.h
llmail.cpp SL-4150 Rename htonmemcpy 2019-07-24 16:58:24 +03:00
llmail.h
llmessagebuilder.cpp
llmessagebuilder.h
llmessageconfig.cpp
llmessageconfig.h
llmessagereader.cpp
llmessagereader.h
llmessagesenderinterface.h
llmessagetemplate.cpp SL-4150 Rename htonmemcpy 2019-07-24 16:58:24 +03:00
llmessagetemplate.h
llmessagetemplateparser.cpp
llmessagetemplateparser.h
llmessagethrottle.cpp
llmessagethrottle.h
llmsgvariabletype.h
llnamevalue.cpp
llnamevalue.h
llnullcipher.cpp
llnullcipher.h
llpacketack.cpp
llpacketack.h
llpacketbuffer.cpp
llpacketbuffer.h
llpacketring.cpp
llpacketring.h
llpartdata.cpp
llpartdata.h
llproxy.cpp [DRTVWR-476] - fix compiler errors 32 bit windows build 2020-03-25 18:44:04 -04:00
llproxy.h DRTVWR-494: Use std:🧵:id for LLThread::currentID(). 2020-03-25 15:28:17 -04:00
llpumpio.cpp SL-10291 cleanup-mutex 2019-01-17 01:53:27 +02:00
llpumpio.h SL-10291 cleanup-mutex 2019-01-17 01:53:27 +02:00
llqueryflags.h
llregionflags.h
llregionhandle.h
llsdappservices.cpp
llsdappservices.h
llsdhttpserver.cpp
llsdhttpserver.h
llsdmessagebuilder.cpp
llsdmessagebuilder.h
llsdmessagereader.cpp
llsdmessagereader.h
llservice.cpp
llservice.h
llservicebuilder.cpp
llservicebuilder.h
llstoredmessage.cpp
llstoredmessage.h
lltaskname.h
llteleportflags.h
lltemplatemessagebuilder.cpp SL-4150 Rename htonmemcpy 2019-07-24 16:58:24 +03:00
lltemplatemessagebuilder.h
lltemplatemessagedispatcher.cpp
lltemplatemessagedispatcher.h
lltemplatemessagereader.cpp SL-4150 Rename htonmemcpy 2019-07-24 16:58:24 +03:00
lltemplatemessagereader.h
llthrottle.cpp
llthrottle.h
lltransfermanager.cpp MAINT-5651 Froce-quit crash 2018-08-17 21:48:40 +03:00
lltransfermanager.h
lltransfersourceasset.cpp
lltransfersourceasset.h
lltransfersourcefile.cpp
lltransfersourcefile.h
lltransfertargetfile.cpp
lltransfertargetfile.h
lltransfertargetvfile.cpp
lltransfertargetvfile.h
lltrustedmessageservice.cpp
lltrustedmessageservice.h
lluseroperation.cpp
lluseroperation.h
llvehicleparams.h
llxfer.cpp SL-4150 Rename htonmemcpy 2019-07-24 16:58:24 +03:00
llxfer.h
llxfer_file.cpp
llxfer_file.h
llxfer_mem.cpp
llxfer_mem.h
llxfer_vfile.cpp
llxfer_vfile.h
llxfermanager.cpp
llxfermanager.h
llxorcipher.cpp
llxorcipher.h
machine.cpp
machine.h
mean_collision_data.h
message.cpp
message.h SL-4150 Rename htonmemcpy 2019-07-24 16:58:24 +03:00
message_prehash.cpp
message_prehash.h
message_string_table.cpp
net.cpp
net.h
partsyspacket.cpp
partsyspacket.h
patch_code.cpp
patch_code.h
patch_dct.cpp
patch_dct.h
patch_idct.cpp
sound_ids.cpp
sound_ids.h