1
0
mirror of https://github.com/VDR4Arch/vdr.git synced 2023-10-10 13:36:52 +02:00

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> Holger Dengler <holger.dengler@gmx.de>
for making the isnumber() function check the given pointer for NULL 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" - Added support for "content identifier descriptor" and "default authority descriptor"
to 'libsi' (thanks to Dave Pickles). 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). - Added some missing 'const' to tChannelID (reported by Sundararaj Reel).
- The isnumber() function now checks the given pointer for NULL (thanks to Holger - The isnumber() function now checks the given pointer for NULL (thanks to Holger
Dengler). Dengler).
- Now checking Setup.InitialChannel for NULL before using it (reported by - Now checking Setup.InitialChannel for NULL before using it (reported by
Christoph Haubrich). 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 * See the main source file 'vdr.c' for copyright information and
* how to reach the author. * 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" #include "skins.h"
@ -223,6 +223,10 @@ bool cSkins::SetCurrent(const char *Name)
eKeys cSkins::Message(eMessageType Type, const char *s, int Seconds) 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) { switch (Type) {
case mtInfo: isyslog("info: %s", s); break; case mtInfo: isyslog("info: %s", s); break;
case mtWarning: isyslog("warning: %s", s); break; case mtWarning: isyslog("warning: %s", s); break;