Hi,
the epgsearch plugin handles some tasks as separate threads, that also use SVDRP to talk to VDR. Currently these threads are started after a fixed time (e.g. 20s) to give VDR the time to start up. A user reported that epgsearch fails in SVDRP communication, because VDR was still waiting for its devices (and therefore is not yet ready to accept SVDRP connections):
Jun 3 20:07:40 vdr vdr: [3466] not all devices ready after 30 seconds
These 30 seconds are only defined in vdr.c and are therefore 'invisible' to plugins. So I'm looking for 'clean' way to check if VDR is up and ready. Of course, one could do any SVDRP command, e.g. 'help', and check the result, but thats quite cumbersome. Next idea: use cPlugin::Housekeeping() to signal the threads that VDR is idle now after startup. This works, but sometimes takes up to >90s. Any idea how to get a better solution?
Thanks,
Christian
On 06/08/09 08:59, Christian Wieninger wrote:
Hi,
the epgsearch plugin handles some tasks as separate threads, that also use SVDRP to talk to VDR. Currently these threads are started after a fixed time (e.g. 20s) to give VDR the time to start up. A user reported that epgsearch fails in SVDRP communication, because VDR was still waiting for its devices (and therefore is not yet ready to accept SVDRP connections):
Jun 3 20:07:40 vdr vdr: [3466] not all devices ready after 30 seconds
These 30 seconds are only defined in vdr.c and are therefore 'invisible' to plugins. So I'm looking for 'clean' way to check if VDR is up and ready. Of course, one could do any SVDRP command, e.g. 'help', and check the result, but thats quite cumbersome. Next idea: use cPlugin::Housekeeping() to signal the threads that VDR is idle now after startup. This works, but sometimes takes up to >90s. Any idea how to get a better solution?
You could implement cPlugin::MainThreadHook(), which is called at the end of the main loop.
Klaus
Hi,
thanks Klaus, this works like a charm :)
Christian
Klaus Schmidinger schrieb:
On 06/08/09 08:59, Christian Wieninger wrote:
Hi,
the epgsearch plugin handles some tasks as separate threads, that also use SVDRP to talk to VDR. Currently these threads are started after a fixed time (e.g. 20s) to give VDR the time to start up. A user reported that epgsearch fails in SVDRP communication, because VDR was still waiting for its devices (and therefore is not yet ready to accept SVDRP connections):
Jun 3 20:07:40 vdr vdr: [3466] not all devices ready after 30 seconds
These 30 seconds are only defined in vdr.c and are therefore 'invisible' to plugins. So I'm looking for 'clean' way to check if VDR is up and ready. Of course, one could do any SVDRP command, e.g. 'help', and check the result, but thats quite cumbersome. Next idea: use cPlugin::Housekeeping() to signal the threads that VDR is idle now after startup. This works, but sometimes takes up to >90s. Any idea how to get a better solution?
You could implement cPlugin::MainThreadHook(), which is called at the end of the main loop.
Klaus
vdr mailing list vdr@linuxtv.org http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr