Fixed a segfault that sometimes happened when killing VDR

This commit is contained in:
Klaus Schmidinger 2001-03-31 15:04:37 +02:00
parent 2eebbba75e
commit f3f2d4577d
4 changed files with 695 additions and 690 deletions

View File

@ -444,3 +444,4 @@ Video Disk Recorder Revision History
CAM card for FTA recordings unless necessary. This is only important for
systems with three or more DVB cards.
- Added the "statdvb2vdr" tool from Hans-Peter Raschke.
- Fixed a segfault that sometimes happened when killing VDR.

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: dvbapi.c 1.65 2001/03/31 10:46:17 kls Exp $
* $Id: dvbapi.c 1.66 2001/03/31 15:01:57 kls Exp $
*/
#include "dvbapi.h"
@ -1488,7 +1488,7 @@ cDvbApi::~cDvbApi()
StopTransfer();
OvlO(false); //Overlay off!
//XXX the following call sometimes causes a segfault - driver problem?
close(videoDev);
//XXX close(videoDev);
}
#if defined(DEBUG_OSD) || defined(REMOTE_KBD)
endwin();

9
eit.c
View File

@ -13,7 +13,7 @@
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
* $Id: eit.c 1.13 2001/03/03 13:23:00 kls Exp $
* $Id: eit.c 1.14 2001/03/31 15:03:16 kls Exp $
***************************************************************************/
#include "eit.h"
@ -1125,7 +1125,8 @@ cSIProcessor::~cSIProcessor()
{
if (fsvbi >= 0)
{
Cancel();
active = false;
Cancel(3);
ShutDownFilters();
delete filters;
if (!--numSIProcessors) // the last one deletes it
@ -1153,7 +1154,9 @@ void cSIProcessor::Action()
time_t lastDump = time(NULL);
struct pollfd pfd;
while(true)
active = true;
while(active)
{
if (masterSIProcessor)
{

3
eit.h
View File

@ -13,7 +13,7 @@
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
* $Id: eit.h 1.4 2000/11/24 14:35:22 kls Exp $
* $Id: eit.h 1.5 2001/03/31 12:42:52 kls Exp $
***************************************************************************/
#ifndef __EIT_H
@ -130,6 +130,7 @@ private:
bool useTStime;
SIP_FILTER *filters;
int fsvbi;
bool active;
bool RefreshFilters(void);
void Action(void);
public: