mirror of
				https://github.com/vdr-projects/vdr.git
				synced 2025-03-01 10:50:46 +00:00 
			
		
		
		
	Fixed handling error status in cDvbTuner::GetFrontendStatus()
This commit is contained in:
		@@ -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
									
									
									
									
									
								
							@@ -5036,8 +5036,10 @@ 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<68><6C>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).
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										15
									
								
								dvbdevice.c
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								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;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user