diff options
author | Klaus Schmidinger <vdr@tvdr.de> | 2007-02-24 11:13:59 +0100 |
---|---|---|
committer | Klaus Schmidinger <vdr@tvdr.de> | 2007-02-24 11:13:59 +0100 |
commit | 2da45a1be103a9de12565bee737d4292ea3fde10 (patch) | |
tree | cbc1d45977418748ee8ec1b510ee1b1c6638ba22 /dvbdevice.c | |
parent | 56e6593d790cf379c64d929409e8830b050ffcf7 (diff) | |
download | vdr-2da45a1be103a9de12565bee737d4292ea3fde10.tar.gz vdr-2da45a1be103a9de12565bee737d4292ea3fde10.tar.bz2 |
Fixed handling error status in cDvbTuner::GetFrontendStatus()1.4.5-2
Diffstat (limited to 'dvbdevice.c')
-rw-r--r-- | dvbdevice.c | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/dvbdevice.c b/dvbdevice.c index fb8ec938..955483ea 100644 --- a/dvbdevice.c +++ b/dvbdevice.c @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: dvbdevice.c 1.160 2006/08/14 09:38:32 kls Exp $ + * $Id: dvbdevice.c 1.160.1.1 2007/02/24 11:10:14 kls Exp $ */ #include "dvbdevice.h" @@ -157,15 +157,14 @@ bool cDvbTuner::GetFrontendStatus(fe_status_t &Status, int TimeoutMs) ; // just to clear the event queue - we'll read the actual status below } } - do { - int stat = ioctl(fd_frontend, FE_READ_STATUS, &Status); - if (stat == 0) - return true; - if (stat < 0) { - if (errno == EINTR) + while (1) { + int stat = ioctl(fd_frontend, FE_READ_STATUS, &Status); + if (stat == 0) + return true; + if (stat < 0 && errno == EINTR) continue; + break; } - } while (0); return false; } |