exit read_wait async loop on error
fixes: https://github.com/openbmc/sdbusplus/issues/56
If read_wait's callback is passed an error, it should not
schedule another read, it should quit.
Tested: calls to io.quit() will successfully exit the read loop
Change-Id: If97efd1dc0ae57658d44a5ce86422ac24adaabb8
Signed-off-by: Vernon Mauery <vernon.mauery@linux.intel.com>
diff --git a/include/sdbusplus/asio/connection.hpp b/include/sdbusplus/asio/connection.hpp
index 41f15af..15edd1b 100644
--- a/include/sdbusplus/asio/connection.hpp
+++ b/include/sdbusplus/asio/connection.hpp
@@ -333,7 +333,11 @@
{
socket.async_read_some(
boost::asio::null_buffers(),
- [&](const boost::system::error_code& /*ec*/, std::size_t) {
+ [&](const boost::system::error_code& ec, std::size_t) {
+ if (ec)
+ {
+ return;
+ }
if (process_discard())
{
read_immediate();