Hello, pe, 2018-01-19 kello 19:48 +0200, Teemu Suikki kirjoitti: > I'm starting to think that maybe my problem IS caused entirely by > this > softhddevice bug. Because my softhddevice keep freezing quite > frequently, I have added a shutdown command that detaches > softhddevice > and leaves vdr running. And then when I watch something, I'm pressing > buttons and using menus and there might be timers recording etc, so > vdr never becomes idle enough to do the housekeeping? > > I tried to understand the code, but I'm having difficulties. :) in > vdr.c, only place that sets LastInteract is this: > > Interact = Menu ? Menu : cControl::Control(); // might have > been closed in the mean time > if (Interact) { > LastInteract = Now; > eOSState state = Interact->ProcessKey(key); > if (state == osUnknown && Interact != cControl::Control()) > { > > So.. Does this mean that softhddevice's dummy player has menu open > all > the time? softhddevice.cpp doesn't have really anything menu-related > in the dummy player, all those methods must be inherited from main > vdr class. > > Only thing that looks suspicious is this, dummy player's ProcessKey: > > eOSState cSoftHdControl::ProcessKey(eKeys key) > { > if (SuspendMode == SUSPEND_NORMAL && (!ISMODELESSKEY(key) > || key == kMenu || key == kBack || key == kStop)) { > delete Player; > > Player = NULL; > Resume(); > SuspendMode = NOT_SUSPENDED; > return osEnd; > } > return osContinue; > } Looks like the plugin has some kind of dummy player open. If I remember right, housekeeping tasks are not handled (by design) when you have a player open. I think I had to work around similar issues when I wrote suspendoutput plugin. It was quite a while ago (2005-09-20: Added vdr idle actions) so I don't remember all the details anymore ... Anyway, the plugin is relatively simple: http://phivdr.dyndns.org/vdr/vdr-suspendoutput/suspendoutput-2.1.0/susp endoutput.c Housekeeping tasks are handled in MainThreadHook() and CheckInactivityTimer(). > Should it really return osContinue all the time? > > > 2018-01-18 23:37 GMT+02:00 Klaus Schmidinger <Klaus.Schmidinger@tvdr. > de>: > > On 18.01.2018 21:26, Teemu Suikki wrote: > > > > > > Ok, I did some debugging. > > > > > > First of all, I noticed something weird that perhaps is not even > > > related to this problem. In vdr.c there is a check: > > > > > > if ((Now - LastInteract) > ACTIVITYTIMEOUT > > > > > > if softhhddevice is detached or suspended, "Now - LastInteract" > > > is > > > always zero, and vdr can never enter housekeeping tasks. This > > > must be > > > a bug in softhddevice? > > > > > > I guess so. > > > > > > Klaus > > > > > > _______________________________________________ > > vdr mailing list > > vdr@xxxxxxxxxxx > > https://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr > > > _______________________________________________ vdr mailing list vdr@xxxxxxxxxxx https://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr