From ca2b1542a08a27d3ec05cebea4bd039c9bcfca0d Mon Sep 17 00:00:00 2001 From: Lang Hames Date: Sun, 29 Jan 2017 04:25:16 +0000 Subject: [PATCH] [Orc][RPC] Have handleOne abandon pending responses upon channel failure. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@293411 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/ExecutionEngine/Orc/RPCUtils.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/include/llvm/ExecutionEngine/Orc/RPCUtils.h b/include/llvm/ExecutionEngine/Orc/RPCUtils.h index 4f4617956a8..c0ea94897be 100644 --- a/include/llvm/ExecutionEngine/Orc/RPCUtils.h +++ b/include/llvm/ExecutionEngine/Orc/RPCUtils.h @@ -845,8 +845,10 @@ public: Error handleOne() { FunctionIdT FnId; SequenceNumberT SeqNo; - if (auto Err = C.startReceiveMessage(FnId, SeqNo)) + if (auto Err = C.startReceiveMessage(FnId, SeqNo)) { + abandonPendingResponses(); return Err; + } if (FnId == ResponseId) return handleResponse(SeqNo); auto I = Handlers.find(FnId); @@ -1250,7 +1252,6 @@ public: return Error::success(); }, Args...)) { - this->abandonPendingResponses(); detail::ResultTraits::consumeAbandoned( std::move(Result)); return std::move(Err); @@ -1258,7 +1259,6 @@ public: while (!ReceivedResponse) { if (auto Err = this->handleOne()) { - this->abandonPendingResponses(); detail::ResultTraits::consumeAbandoned( std::move(Result)); return std::move(Err); -- 2.50.1