aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorghost <andreas.monzner@multimedia-labs.de>2011-04-11 14:55:32 +0200
committerghost <andreas.monzner@multimedia-labs.de>2011-04-11 14:55:32 +0200
commit4c4383379548e25763887d79b45576b015ece7b5 (patch)
treeeb4c4dc9de5d9fd9bb5122ff37c0e6ece8fe3326 /lib
parentd23552e65b55721d9288ed0789792b710db391a9 (diff)
downloadenigma2-4c4383379548e25763887d79b45576b015ece7b5.tar.gz
enigma2-4c4383379548e25763887d79b45576b015ece7b5.zip
do call pthread_join before new pthread_create when the thread handle is valid
fixes bug #749
Diffstat (limited to 'lib')
-rw-r--r--lib/base/thread.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/lib/base/thread.cpp b/lib/base/thread.cpp
index fa923deb..1fda6a47 100644
--- a/lib/base/thread.cpp
+++ b/lib/base/thread.cpp
@@ -58,7 +58,12 @@ int eThread::runAsync(int prio, int policy)
pthread_attr_setschedpolicy(&attr, policy);
pthread_attr_setschedparam(&attr, &p);
}
-
+
+ if (the_thread) {
+ eDebug("old thread joined %d", pthread_join(the_thread, 0));
+ the_thread = 0;
+ }
+
if (pthread_create(&the_thread, &attr, wrapper, this))
{
pthread_attr_destroy(&attr);
@@ -69,7 +74,7 @@ int eThread::runAsync(int prio, int policy)
pthread_attr_destroy(&attr);
return 0;
-}
+}
int eThread::run(int prio, int policy)
{