Mailing List archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[vdr] Re: vdr-1.3.17: thread issues with vdr-xine andvdr-osdteletext



rnissl@gmx.de(Reinhard Nissl)  05.12.04 17:30

>Klaus Schmidinger wrote:

>>> after applying all osdteletext patches and poisening VDR there
>>> still seems to remain a race condtion when havily zapping between
>>> channels.
>>>
>>>  From /var/log/messages:
>>>
>>> Dec 5 14:00:52 video vdr[1332]: switching to channel 18
>>> Dec 5 14:00:52 video vdr[1412]: transfer thread ended (pid=1412,
>>> (pid=1421, tid=1343503)
>>> Dec 5 14:00:53 video vdr[1419]: buffer stats: 60536 (2%) used
>>>
>>> At this point VDR crashed. Strange is that there are two receivers
>>> (1417 , 1419) and two TS buffers (1420, 1421) but only a single
>>> transfer thread (1416).
>>
>> My guess would be that the osdteletext uses the other receiver.

>Would you expect that there are two receivers at that time?

>I don't think that two receivers are necessary as I've added debug
>output to osdteletext's Receive() function and it gets also called
>when there is only one receiver that typically feeds the transfer
>thread.

Hm...

>BTW: I've meanwhile realized that each time VDR crashes there were two
>receivers created.

Have you applied the thread safe patches to vdr and osdteletext
that were posted here?

Without them osdteletext was completely unusable here:
When i switch from DVB-S to DVB-T vdr segfaults immedialtely
or after the second zapp.

Since then it runs stable (mainly, there are still reentrance problems).



in receiver.c i added the "INFO" line and see every allocation (I hope).


cReceiver::cReceiver(int Ca, int Priority, int NumPids, ...)
{
...
  else
     esyslog("ERROR: cReceiver called without a PID!");
  esyslog("INFO: cReceiver called with %d %d %d %d %d %d",ca,priority,pids[0],pids[1],pids[2],pids[3],pids[4]);
}


in my log file i see after a switch:

vdr[12584]: INFO: cReceiver called with 0 -1 104 0 0 0
vdr[12584]: creating directory /vtx/S19.2E-1-1101-28106
vdr[16711]: receiver on device 1 LNB: 1, numDevices 0 thread started (pid=16711, tid=294924)
vdr[16712]: TS buffer on device 1 thread started (pid=16712, tid=311309)






Home | Main Index | Thread Index