diff options
author | Brad Kittenbrink <brad@lindenlab.com> | 2019-04-18 15:44:45 -0700 |
---|---|---|
committer | Nat Goodspeed <nat@lindenlab.com> | 2020-03-25 18:39:21 -0400 |
commit | 6419c6e279816b21e30fef1a6ac4864df7fcf91d (patch) | |
tree | 8e1963a9b6b006255ff85b7ee868e52b6177c2cf /indra | |
parent | c26c2bc3f0a4c254aac8ded86162d72eee7dea0a (diff) |
Removed unnecessary disconnection of listener in postAndSuspendSetup
Diffstat (limited to 'indra')
-rw-r--r-- | indra/llcommon/lleventcoro.cpp | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/indra/llcommon/lleventcoro.cpp b/indra/llcommon/lleventcoro.cpp index 421897cb98..b1fb8ffd04 100644 --- a/indra/llcommon/lleventcoro.cpp +++ b/indra/llcommon/lleventcoro.cpp @@ -134,15 +134,12 @@ LLBoundListener postAndSuspendSetup(const std::string& callerName, // return the consuming attribute for some other coroutine, most likely // the main routine. bool consuming(LLCoros::get_consuming()); - - std::shared_ptr<LLBoundListener> connection_ptr = std::make_shared<LLBoundListener>(); - // make a callback that will assign a value to the future, and listen on // the specified LLEventPump with that callback - *connection_ptr = replyPump.getPump().listen(listenerName, - [&promise, consuming, listenerName, connection_ptr](const LLSD& result) + LLBoundListener connection( + replyPump.getPump().listen(listenerName, + [&promise, consuming, listenerName](const LLSD& result) { - connection_ptr->disconnect(); try { promise.set_value(result); @@ -153,7 +150,7 @@ LLBoundListener postAndSuspendSetup(const std::string& callerName, << listenerName << "' " << ex.what() << LL_ENDL; } return consuming; - }); + })); // skip the "post" part if requestPump is default-constructed if (requestPump) { @@ -172,7 +169,7 @@ LLBoundListener postAndSuspendSetup(const std::string& callerName, LL_DEBUGS("lleventcoro") << callerName << ": coroutine " << listenerName << " about to wait on LLEventPump " << replyPump.getPump().getName() << LL_ENDL; - return *connection_ptr; + return connection; } } // anonymous |