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

Stefan Lucke stefan at lucke.in-berlin.de
Thu Jul 7 08:05:20 CEST 2005


On Donnerstag, 30. Juni 2005 17:43, Klaus Schmidinger wrote:
> 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).

Is there another way for a plugin to display a message during
background processing ? 
Preferably a _non_ blocking way,as I noticed that Skins.Message()
does it's job blocking.


-- 
Stefan Lucke




More information about the vdr mailing list