DVB: ignore EINTR. which might be caused by watchdog signals. This is possibly not...
jmo [Wed, 30 Mar 2011 17:14:02 +0000 (17:14 +0000)]
git-svn-id: https://svn.berlios.de/svnroot/repos/senf/trunk@1775 270642c3-0616-0410-b53a-bc976706d245

senf/Socket/Protocols/DVB/DVBFrontendHandle.cc

index 032b5db..8a95f1d 100644 (file)
@@ -200,7 +200,7 @@ prefix_ dvb_frontend_event senf::DVBFrontendSocketProtocol::getEvent() const{
     struct dvb_frontend_event ev ;
 
     ::memset(&ev, 0, sizeof(struct dvb_frontend_event));
-
+std::cerr<<"DVBFrontendSocketProtocol::getEvent\n";
     if (::ioctl(fd(), FE_GET_EVENT, &ev)) {
         switch(errno) {
             case EBADF:
@@ -209,6 +209,9 @@ prefix_ dvb_frontend_event senf::DVBFrontendSocketProtocol::getEvent() const{
             case EWOULDBLOCK:
                 SENF_THROW_SYSTEM_EXCEPTION( "No event pending and device is in nonblocking mode." );
                 break;
+            case EINTR:
+                // TODO: ignore EINTR. which might be caused by watchdog signals. This is possibly not the solution, but should work
+                break;
             default:
                 SENF_THROW_SYSTEM_EXCEPTION("Errno: ") << errno;
         }