Fixed handling error status in cDvbTuner::GetFrontendStatus()

This commit is contained in:
Klaus Schmidinger 2007-02-24 11:20:42 +01:00
parent 328d8b6494
commit 50b14be807
3 changed files with 11 additions and 10 deletions

View File

@ -1117,6 +1117,7 @@ Reinhard Nissl <rnissl@gmx.de>
for fixing a possible crash in remux.c on 64-bit machines for fixing a possible crash in remux.c on 64-bit machines
for making cCommand::Execute() use cPipe instead of popen() to avoid problems for making cCommand::Execute() use cPipe instead of popen() to avoid problems
with open file handles when starting background commands with open file handles when starting background commands
for fixing handling error status in cDvbTuner::GetFrontendStatus()
Richard Robson <richard_robson@beeb.net> Richard Robson <richard_robson@beeb.net>
for reporting freezing replay if a timer starts while in Transfer Mode from the for reporting freezing replay if a timer starts while in Transfer Mode from the

View File

@ -5091,11 +5091,13 @@ Video Disk Recorder Revision History
with open file handles when starting background commands (thanks to Reinhard with open file handles when starting background commands (thanks to Reinhard
Nissl). Nissl).
2007-02-17: Version 1.4.5-2 2007-02-24: Version 1.4.5-2
- Removed 'assert(0)' from cDvbSpuDecoder::setTime() (thanks to Marco Schlüßler). - Removed 'assert(0)' from cDvbSpuDecoder::setTime() (thanks to Marco Schlüßler).
- Fixed a possible crash when loading an invalid XPM file (thanks to Martin Wache). - Fixed a possible crash when loading an invalid XPM file (thanks to Martin Wache).
- Updated satellite names in 'sources.conf' (thanks to Thilo Wunderlich). - Updated satellite names in 'sources.conf' (thanks to Thilo Wunderlich).
- Fixed handling error status in cDvbTuner::GetFrontendStatus() (thanks to
Reinhard Nissl).
2007-02-03: Version 1.5.1 2007-02-03: Version 1.5.1

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and * See the main source file 'vdr.c' for copyright information and
* how to reach the author. * how to reach the author.
* *
* $Id: dvbdevice.c 1.162 2007/01/13 11:37:00 kls Exp $ * $Id: dvbdevice.c 1.163 2007/02/24 11:20:42 kls Exp $
*/ */
#include "dvbdevice.h" #include "dvbdevice.h"
@ -155,15 +155,13 @@ bool cDvbTuner::GetFrontendStatus(fe_status_t &Status, int TimeoutMs)
; // just to clear the event queue - we'll read the actual status below ; // just to clear the event queue - we'll read the actual status below
} }
} }
do { while (1) {
int stat = ioctl(fd_frontend, FE_READ_STATUS, &Status); int stat = ioctl(fd_frontend, FE_READ_STATUS, &Status);
if (stat == 0) if (stat == 0)
return true; return true;
if (stat < 0) { if (stat > 0 || errno != EINTR)
if (errno == EINTR) break;
continue;
} }
} while (0);
return false; return false;
} }