fixed daemon kill before threads are spawned
[strongswan.git] / 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);
+       }
 }
 
 /**