Re: VDR not cleaning .del directories

Petri Hintukainen <[email protected]>
Newsgroups gmane.linux.vdr
Message-ID <[email protected]>
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
> > [email protected]
> > https://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr
> 
> 
> 

_______________________________________________
vdr mailing list
[email protected]
https://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.