Hi, Reinhard Nissl 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:
...
Damn words! The Thread description you choose was leading me into the wrong direction. Actually it's a "cDevice" that is started twice!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.You'll definitely need to cReceiver instances: one for transfer thread and one for teletext.
BTW: I've meanwhile realized that each time VDR crashes there were two receivers created.The race condition is in cDevice::AttachReceiver() and or cThread::Start():