[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