cSkins::Message() now blocks calls from background threads

This commit is contained in:
Klaus Schmidinger 2011-08-06 09:41:57 +02:00
parent 4278458e69
commit fdd82cd972
3 changed files with 11 additions and 2 deletions

View File

@ -2731,3 +2731,6 @@ Dave Pickles <dave@pickles.me.uk>
Holger Dengler <holger.dengler@gmx.de>
for making the isnumber() function check the given pointer for NULL
Michael Eiler <eiler.mike@gmail.com>
- reporting a crash in case cSkins::Message() is called from a background thread

View File

@ -6650,10 +6650,12 @@ Video Disk Recorder Revision History
- Added support for "content identifier descriptor" and "default authority descriptor"
to 'libsi' (thanks to Dave Pickles).
2011-07-31: Version 1.7.20
2011-08-06: Version 1.7.20
- Added some missing 'const' to tChannelID (reported by Sundararaj Reel).
- The isnumber() function now checks the given pointer for NULL (thanks to Holger
Dengler).
- Now checking Setup.InitialChannel for NULL before using it (reported by
Christoph Haubrich).
- cSkins::Message() now blocks calls from background threads (thanks to Michael
Eiler for reporting a crash in such a scenario).

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: skins.c 2.1 2009/06/06 15:12:31 kls Exp $
* $Id: skins.c 2.2 2011/08/06 09:41:57 kls Exp $
*/
#include "skins.h"
@ -223,6 +223,10 @@ bool cSkins::SetCurrent(const char *Name)
eKeys cSkins::Message(eMessageType Type, const char *s, int Seconds)
{
if (!cThread::IsMainThread()) {
dsyslog("cSkins::Message() called from background thread - ignored! (Use cSkins::QueueMessage() instead)");
return kNone;
}
switch (Type) {
case mtInfo: isyslog("info: %s", s); break;
case mtWarning: isyslog("warning: %s", s); break;