[vdr] [PATCH] fix segfault in cSkins::Message

Klaus Schmidinger Klaus.Schmidinger at cadsoft.de
Thu Jun 30 17:43:25 CEST 2005


Wolfgang Rohdewald wrote:
> On Donnerstag 30 Juni 2005 16:53, Klaus Schmidinger wrote:
> 
>>IIRC we already had this discussion some time ago.
>>The point is that you're not supposed to call any of the skin
>>functions from a thread. These functions are only supposed to be called
>>by VDR itself.
> 
> 
> how else can a plugin display a message or ask a question? since 
> cInterface::Confirm() also calls Skins.Message(), I suppose Confirm()
> is also illegal for plugins?
> 
> this is how muggle has always been doing this:
> 
> #if VDRVERSNUM >= 10307
>         Skins.Message (mtInfo, buffer,duration);
>         Skins.Flush ();
> #else
>         Interface->Status (buffer);
>         Interface->Flush ();
> #endif
> 
> and
> 
>     if (!Interface->Confirm(tr("Import items?")))
>             return false;

Sorry, I was a little too vague here.
What I meant to say was that these functions shall only be called
from the _foreground_ thread (the one that VDR's main loop runs in).

Klaus



More information about the vdr mailing list