From b5866fe5e95f339ba0b26dfcfe61f953b239bc3f Mon Sep 17 00:00:00 2001 From: Stanislav Angelovic Date: Thu, 14 Dec 2017 12:58:50 +0100 Subject: [PATCH] Fix handling of interrupt when polling --- src/Connection.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Connection.cpp b/src/Connection.cpp index 4d2b7f9..a79749a 100755 --- a/src/Connection.cpp +++ b/src/Connection.cpp @@ -113,6 +113,8 @@ void Connection::enterProcessingLoop() auto fdsCount = sizeof(fds)/sizeof(fds[0]); r = poll(fds, fdsCount, usec == (uint64_t) -1 ? -1 : (usec+999)/1000); + if (r < 0 && errno == EINTR) + continue; SDBUS_THROW_ERROR_IF(r < 0, "Failed to wait on the bus", -errno); if (fds[1].revents & POLLIN)