]> code.delx.au - pulseaudio/commitdiff
unfortunately we cannot detect if a foreign thread is still running. Thus sucks....
authorLennart Poettering <lennart@poettering.net>
Sun, 27 May 2007 16:59:34 +0000 (16:59 +0000)
committerLennart Poettering <lennart@poettering.net>
Sun, 27 May 2007 16:59:34 +0000 (16:59 +0000)
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1458 fefdeb5f-60dc-0310-8127-8f9354f1896f

src/pulsecore/thread-posix.c

index 7ff5e7c30e11fc4b1a9c100581b0b7d00924b1d3..b3274426192847774cf8bb6541f4ac7768943818 100644 (file)
@@ -111,17 +111,12 @@ pa_thread* pa_thread_new(pa_thread_func_t thread_func, void *userdata) {
 
 int pa_thread_is_running(pa_thread *t) {
     assert(t);
-
-    if (!t->thread_func) {
-        /* Mhmm, this is a foreign thread, t->running is not
-         * necessarily valid. We misuse pthread_getschedparam() to
-         * check if the thread is valid. This might not be portable. */
-
-        int policy;
-        struct sched_param param;
-
-        return pthread_getschedparam(t->id, &policy, &param) >= 0 || errno != ESRCH;
-    }
+    
+    /* Unfortunately there is no way to tell whether a "foreign"
+     * thread is still running. See
+     * http://udrepper.livejournal.com/16844.html for more
+     * information */
+    assert(t->thread_func);
 
     return pa_atomic_load(&t->running) > 0;
 }