vdr 1.3.25 thread problems (was: Re: [vdr] vdr 1.3.25 delivers wrong wakeup time)

Rainer Zocholl UseNet-Posting-Nospam-74308- at zocki.toppoint.de
Wed Jun 1 16:04:00 CEST 2005




/video0/pwroff get the parameters from VDR:
VDR shutdown delay now 1:1117634400 2:3702 3:88 4:Do It Yourself - S.O.S. 5:0

that is time
msi:~/video#  date  -d  "1970-01-01 1117634400 sec"
Wed Jun  1 15:00:00 CEST 2005

the timer is:
msi:~/video# grep Yourself /video0/timers.conf
1:T-8468-8705-16403:MTWTF--:1600:1701:50:3:Do It Yourself - S.O.S.:



Jun  1 15:15:56 msi vdr[5722]: executing '/video0/pwroff 1117634400 2644 88
"Do It Yourself - S.O.S." 0'
Jun  1 15:15:56 msi pwroff: VDR shutdown 1:1117634400 2:2644 3:88 4:Do It
Yourself - S.O.S. 5:0 A:1117634400 2644 88 Do It Yourself - S.O.S. 0
Jun  1 15:15:57 msi pwroff: wrong wakeup time 1117634400!


It seems that VDR finds the right timer, but calcutes the time
in second wrong! 




Again: 
The most beloved problem: Reentrancy...

cString TimeToString(time_t t)
{
  char buffer[32];
  if (ctime_r(&t, buffer)) {
     buffer[strlen(buffer) - 1] = 0; // strip trailing newline
     return buffer;
     }
  return "???";
}


It's no good idea to deference a variable on the stack
OUTSIDE the function it self...
It might work but is not really better than a static
and is not relyable!



Having a deja vue:
I thought all that was "overworked" with the "thread-save" patches
3 month ago? 

ere old soruces fed back to cvs?





Making it "static" violates multithreading...

the fastest:
Make it like in ctime_r an define a buffer pint as parameter
the slowest: use the ugly aprintf and don't forget to free
the memory...










Rainer---<=====>                         Vertraulich
             //
           //                              
         <=====>--------------ocholl, Kiel, Germany ------------




More information about the vdr mailing list