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