Mailing List archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[vdr] Re: System freeze - scanning recordings ...



Thorsten Giese wrote:
> 
> Am Mittwoch, 17. September 2003 22:44 schrieben Sie:
> 
> > You need to add newline characters to your printf() statements,
> > as in
> >
> >    printf("in if\n");
> >
> > Alternatively you could print to stderr:
> >
> >    fprintf(stderr, "in if");
> >
> > which is unbuffered.
> 
> I *REALLY* should have another C/C++ primer ;) ... Sorry for the
> vi-Characters, just ignore them.
> 
> Entering cRecordings::Load
> Got Filepointer
> in if

So this means you never get "in while", which indicates that
the pipe for the 'find' command doesn't return anything.

Please insert a

  print("%s\n", cmd);

right after the asprintf() and then enter the command it prints
at a shell prompt. Do you get any error messages then?

Klaus

> Ok. Here another hint while playing arround. When starting through ./runvdr I
> can kill-9 it, and it respawns. When I just invoke ./vdr ... there are 2
> processes:
> 
> 30628 pts/4    S      0:00 ./vdr
> 14077 pts/4    Z      0:00 [vdr] <defunct>
> 30340 ?        SW     0:00 [kdvb-fe-0:0]
> 20543 pts/4    S      0:00 ./vdr
> 
> Killing one brings
> 
> before end (from the debug output)
> 
> Killing the other brings (as exspected)
> 
> Killed
> 
> --CODE--CODE--CODE--
> 
> // --- cRecordings
> -----------------------------------------------------------$
> $
> bool cRecordings::Load(bool Deleted)$
> {$
> fprintf(stderr, "Entering cRecordings::Load\n");$
>   Clear();$
>   bool result = false;$
>   char *cmd = NULL;$
>   asprintf(&cmd, FINDCMD, VideoDirectory, Deleted ? "*" DELEXT : "*" RECEXT);$
>   FILE *p = popen(cmd, "r");$
> fprintf(stderr, "Got Filepointer\n");$
>   if (p) {$
> fprintf(stderr, "in if\n");$
>      char *s;$
>      while ((s = readline(p)) != NULL) {$
> fprintf(stderr, "in while\n");$
>            cRecording *r = new cRecording(s);$
>            if (r->Name())$
>               Add(r);$
>            else$
>               delete r;$
>            }$
>      pclose(p);$
>      Sort();$
>      result = Count() > 0;$
>      }$
>   else$
>      Interface->Error("Error while opening pipe!");$
>   free(cmd);$
> fprintf(stderr, "before end\n");$
>   return result;$
> }$


-- 
Info:
To unsubscribe send a mail to ecartis@linuxtv.org with "unsubscribe vdr" as subject.



Home | Main Index | Thread Index