[vdr] Eggtimer-0.9.1 thread won't end
Peter Juszack
vdr at unterbrecher.de
Fri Mar 24 23:56:17 CET 2006
----- Original Message -----
From: "Stefan Huelswitt" <s.huelswitt at gmx.de>
Newsgroups: local.linux.vdr
To: <vdr at linuxtv.org>
Sent: Friday, March 24, 2006 2:28 PM
Subject: Re: [vdr] Eggtimer-0.9.1 thread won't end
> On 24 Mar 2006 Peter Juszack <vdr at unterbrecher.de> wrote:
>
>> I know that it would be possible to leave the Action mehtod via return.
>> But I want
>> to implement some clean up at after the action loop so the method must
>> finish
>> in al cases.
>
> In that case you could leave the action loop with break.
> No need for another flag normaly.
That's right, of course - but I have to leave the while from within a switch
case block
so I have to define an own loop variable.
>
>> I don't understand why it is not possible to set the cThread::running
>> member to false
>> from within the action loop or use any other cThread implemented
>> mechnism to leave
>> the action loop.
>> Leaving this to the plugin developer is not the best idea beacause of
>> duplicate running variables.
>
> Well, I don't see the problem.
It's not a real problem. But I remember that I copied parts of my code from
other plugins
which have own class-wide running variables. I believe that starting and
stopping the thread
should be implemented in the base class cThread in a way that a plugin
developer uses
a scheme without own status vars.
>
> If you want to stop a thread from outside i.e. from another
> thread you use Cancel(), as this envolves signaling the running
> thread that it should shut down.
I am not connected to my VDR now, but as far as I remember Cancel(int
seconds) is a protected
method and has to be wrapped for public access. Maybe there is a
Cancel(void) method which
I have not deiscovered yet. That's what I mean - I saw different ways of
implementing thread
handling in almost every plugin allthough developers derived from cThread.
>
> If you're on the thread i.e. inside Action() there is no need for
> any kind of signaling, you must only drop out of the Action()
> function to shut down the thread.
Should I place cleanup stuff in a destructor?
>
> Regards.
>
> --
> Stefan Huelswitt
> s.huelswitt at gmx.de | http://www.muempf.de/
>
> _______________________________________________
> vdr mailing list
> vdr at linuxtv.org
> http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr
>
More information about the vdr
mailing list