From a26905b0c5570644bb7a65b952accfe2c3f81c33 Mon Sep 17 00:00:00 2001 From: Brad Kittenbrink Date: Wed, 27 Feb 2019 16:55:08 -0800 Subject: Added try/catch closer to source of error so LL_ERRS fatal can be more useful for debugging; --- indra/llcommon/lleventcoro.cpp | 12 ++++++++++-- 1 file 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 -- cgit v1.2.3