mirror of
https://github.com/VDR4Arch/vdr.git
synced 2023-10-10 13:36:52 +02:00
Fixed handling error status in cDvbTuner::GetFrontendStatus()
This commit is contained in:
parent
328d8b6494
commit
50b14be807
@ -1117,6 +1117,7 @@ Reinhard Nissl <rnissl@gmx.de>
|
||||
for fixing a possible crash in remux.c on 64-bit machines
|
||||
for making cCommand::Execute() use cPipe instead of popen() to avoid problems
|
||||
with open file handles when starting background commands
|
||||
for fixing handling error status in cDvbTuner::GetFrontendStatus()
|
||||
|
||||
Richard Robson <richard_robson@beeb.net>
|
||||
for reporting freezing replay if a timer starts while in Transfer Mode from the
|
||||
|
4
HISTORY
4
HISTORY
@ -5091,11 +5091,13 @@ Video Disk Recorder Revision History
|
||||
with open file handles when starting background commands (thanks to Reinhard
|
||||
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).
|
||||
- Fixed a possible crash when loading an invalid XPM file (thanks to Martin Wache).
|
||||
- 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
|
||||
|
||||
|
16
dvbdevice.c
16
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.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"
|
||||
@ -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
|
||||
}
|
||||
}
|
||||
do {
|
||||
int stat = ioctl(fd_frontend, FE_READ_STATUS, &Status);
|
||||
if (stat == 0)
|
||||
return true;
|
||||
if (stat < 0) {
|
||||
if (errno == EINTR)
|
||||
continue;
|
||||
while (1) {
|
||||
int stat = ioctl(fd_frontend, FE_READ_STATUS, &Status);
|
||||
if (stat == 0)
|
||||
return true;
|
||||
if (stat > 0 || errno != EINTR)
|
||||
break;
|
||||
}
|
||||
} while (0);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user