]> git.ipfire.org Git - thirdparty/strongswan.git/commitdiff
watcher: use processors new execute_job() to notify FDs
authorMartin Willi <martin@revosec.ch>
Thu, 18 Jul 2013 09:40:40 +0000 (11:40 +0200)
committerMartin Willi <martin@revosec.ch>
Thu, 18 Jul 2013 14:00:31 +0000 (16:00 +0200)
Just queueing is problematic, as all threads might be busy waiting for events
that the queued (but never executed) job delivers.

src/libstrongswan/processing/watcher.c

index 9e02a1b4938175e58f086eb5402cf2059dbbcef1..69cb3c8f5370aa932a4a197ec3a2be5b4e7fb183 100644 (file)
@@ -325,15 +325,7 @@ static job_requeue_t watch(private_watcher_t *this)
                                while (this->jobs->remove_first(this->jobs,
                                                                                                (void**)&job) == SUCCESS)
                                {
-                                       if (lib->processor->get_threads(lib->processor))
-                                       {
-                                               lib->processor->queue_job(lib->processor, job);
-                                       }
-                                       else
-                                       {
-                                               job->execute(job);
-                                               job->destroy(job);
-                                       }
+                                       lib->processor->execute_job(lib->processor, job);
                                }
                                /* we temporarily disable a notified FD, rebuild FDSET */
                                return JOB_REQUEUE_DIRECT;