fixed daemon kill before threads are spawned
authorMartin Willi <martin@strongswan.org>
Wed, 14 Nov 2007 10:12:34 +0000 (10:12 -0000)
committerMartin Willi <martin@strongswan.org>
Wed, 14 Nov 2007 10:12:34 +0000 (10:12 -0000)
src/charon/processing/jobs/callback_job.c

index 6f534e0..2cba606 100644 (file)
@@ -121,12 +121,7 @@ static void cancel(private_callback_job_t *this)
 {
        pthread_t thread;
        
-       /* wait until thread has started */
        pthread_mutex_lock(&this->mutex);
-       while (this->thread == 0)
-       {
-               pthread_cond_wait(&this->condvar, &this->mutex);
-       }
        thread = this->thread;
        
        /* terminate its children */
@@ -134,8 +129,11 @@ static void cancel(private_callback_job_t *this)
        pthread_mutex_unlock(&this->mutex);
        
        /* terminate thread */
-       pthread_cancel(thread);
-       pthread_join(thread, NULL);
+       if (thread)
+       {
+               pthread_cancel(thread);
+               pthread_join(thread, NULL);
+       }
 }
 
 /**