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

Wolfgang Rohdewald wolfgang at rohdewald.de
Thu Jun 30 17:47:28 CEST 2005


On Donnerstag 30 Juni 2005 17:37, Klaus Schmidinger wrote:
> Stefan Huelswitt wrote:
> > On 30 Jun 2005 Klaus Schmidinger <Klaus.Schmidinger at cadsoft.de> wrote:
> > 
> > 
> >>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.
> > 
> > 
> > I assume that this means "to be called from the foreground thread
> > only". No matter if it's VDR itself or a plugin.
> 
> Yes, that´s what I meant.

in the case of muggle: There is a menu entry in the muggle setup which
starts a thread importing tracks. This thread shows status messages
like "Imported 1000 item". When the OSD times out while such a status
message is displayed, segfault.

So will that importing thread have to pass the message to vdr through
port 2001 or is there an easier way?

from cInterface::GetKey():
     if (!Skins.IsOpen()) {
        char *message = SVDRP->GetMessage();
        if (message) {
           Skins.Message(mtInfo, message);
           free(message);
        }


-- 
Wolfgang



More information about the vdr mailing list