Hi,
I heard that in new versions multiple SVDR connections are/will be allowed. Does it mean that they will be then implemented via a separate thread and my problem is solved?
Frank Schmirler wrote:
On Wed, 10 Jan 2007 23:48:38 +0100, Pjotr Kourzanov wrote
I have neither investigated the problem deeper yet (just found a way to split the EPG data into parts), nor looked in the source code. Is it so difficult to convince the watchdog that while SVDR thread is busy it is actually doing useful work?
SVDRP is not implemented as a thread. Processing the SVDRP interface is part of the VDR main loop. The problem is that if you are uploading EPG fast enough, the SVDRP code will remain in cSVDRP::Process() until you're done. So the watchdog timer will not be refreshed and the watchdog eventually fires.
There are two possible workarounds:
- increase the watchdog timeout
- take a short break from time to time while uploading the EPG. The "while
(file.Ready(false))" loop in cSVDRP::Process() has a timeout of just 10 milliseconds. With a sleep of 100ms you should be on the safe side, as you still need to take into account that network traffic is buffered on both, the client and the server.
Well, as I said earlier, these things look like dirty hacks to me. For now I will just continue using my own dirty hack by splitting the EPG into parts.
Cheers, Frank
vdr mailing list vdr@linuxtv.org http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr