simple_display: stop thread on shutdown

TODO: tripledragon code needs testing


Origin commit data
------------------
Branch: ni/coolstream
Commit: 46a2a11d5d
Author: Stefan Seyfried <seife@tuxbox-git.slipkontur.de>
Date: 2012-10-14 (Sun, 14 Oct 2012)



------------------
This commit was generated by Migit
This commit is contained in:
Stefan Seyfried
2012-10-14 23:48:44 +02:00
parent d112cb2c09
commit 1825f38ed3
2 changed files with 18 additions and 1 deletions

View File

@@ -100,6 +100,17 @@ CLCD::CLCD()
/* do not show menu in neutrino... */
has_lcd = false;
servicename = "";
thread_running = false;
}
CLCD::~CLCD()
{
if (thread_running)
{
thread_running = false;
pthread_cancel(thrTime);
pthread_join(thrTime, NULL);
}
}
CLCD* CLCD::getInstance()
@@ -116,7 +127,7 @@ void CLCD::wake_up()
void* CLCD::TimeThread(void *)
{
while(1) {
while (CLCD::getInstance()->thread_running) {
sleep(1);
CLCD::getInstance()->showTime();
/* hack, just if we missed the blit() somewhere
@@ -134,8 +145,10 @@ void* CLCD::TimeThread(void *)
void CLCD::init(const char *, const char *, const char *, const char *, const char *, const char *)
{
setMode(MODE_TVRADIO);
thread_running = true;
if (pthread_create (&thrTime, NULL, TimeThread, NULL) != 0 ) {
perror("[neutino] CLCD::init pthread_create(TimeThread)");
thread_running = false;
return ;
}
}