[vdr] [RFE] Soft-cancel cThread

Klaus Schmidinger Klaus.Schmidinger at cadsoft.de
Sun Sep 24 12:08:53 CEST 2006


Udo Richter wrote:
> Hi,
> 
> I have a suggestion for a VDR change: I could use a way to end a cThread 
> externally without having to wait and without hard canceling it.
> 
> My thread runs with the usual while (Running()) loop. To signal the loop 
> to stop, it would be enough to set running=false. However, running is a 
> private member of cThread. The only way to set running=false is to call 
> Cancel(). This involves killing the thread and waiting for the thread to 
> terminate. Two things I actually don't want.
> 
> There are two ways this could be done. First, by adding a function 
> SoftCancel() { running=false; }. Or second, by modifying Cancel() to 
> just set running=false if called with Cancel(-1) or Cancel(0,false) or 
> similar.

I would prefer using -1 as a special value for this, because this
wouldn't require an interface change.

Does the attached patch do what you want?

Klaus
-------------- next part --------------
A non-text attachment was scrubbed...
Name: vdr-1.4.3-threadcancel.diff
Type: text/x-patch
Size: 1014 bytes
Desc: not available
Url : http://www.linuxtv.org/pipermail/vdr/attachments/20060924/fbf3628f/vdr-1.4.3-threadcancel.bin


More information about the vdr mailing list