summaryrefslogtreecommitdiff
path: root/indra/llcommon/lleventcoro.cpp
diff options
context:
space:
mode:
authorBrad Kittenbrink <brad@lindenlab.com>2019-02-27 16:55:08 -0800
committerNat Goodspeed <nat@lindenlab.com>2020-03-25 18:39:21 -0400
commita26905b0c5570644bb7a65b952accfe2c3f81c33 (patch)
treef8cfc4d1bfe26191ead7f9a9208c6ba456ff9cdb /indra/llcommon/lleventcoro.cpp
parent96639a8d09862eca95c483336d603aeb85694370 (diff)
Added try/catch closer to source of error so LL_ERRS fatal can be more useful for debugging;
Diffstat (limited to 'indra/llcommon/lleventcoro.cpp')
-rw-r--r--indra/llcommon/lleventcoro.cpp12
1 files changed, 10 insertions, 2 deletions
diff --git a/indra/llcommon/lleventcoro.cpp b/indra/llcommon/lleventcoro.cpp
index 47d99f0050..367ddf485d 100644
--- a/indra/llcommon/lleventcoro.cpp
+++ b/indra/llcommon/lleventcoro.cpp
@@ -138,9 +138,17 @@ LLBoundListener postAndSuspendSetup(const std::string& callerName,
// the specified LLEventPump with that callback
LLBoundListener connection(
replyPump.getPump().listen(listenerName,
- [&promise, consuming](const LLSD& result)
+ [&promise, consuming, listenerName](const LLSD& result)
{
- promise.set_value(result);
+ try
+ {
+ promise.set_value(result);
+ }
+ catch(boost::fibers::promise_already_satisfied & ex)
+ {
+ LL_ERRS("lleventcoro") << "promise already satisfied in '"
+ << listenerName << "' " << ex.what() << LL_ENDL;
+ }
return consuming;
}));
// skip the "post" part if requestPump is default-constructed