RedisConnection#ReadLoop(): don't crash (silently) if a promise to be set is already set

This commit is contained in:
Alexander A. Klimov 2022-02-09 15:20:05 +01:00
parent b7426f4ee6
commit 59dd3592c2

View File

@ -413,12 +413,16 @@ void RedisConnection::ReadLoop(asio::yield_context& yc)
throw; throw;
} catch (...) { } catch (...) {
promise.set_exception(std::current_exception()); promise.set_exception(std::current_exception());
break;
continue;
} }
} }
promise.set_value(std::move(replies)); try {
promise.set_value(std::move(replies));
} catch (const std::future_error&) {
// Complaint about the above op is not allowed
// due to promise.set_exception() was already called
}
} }
} }
} }