aboutsummaryrefslogtreecommitdiffstats
path: root/src/libstrongswan/processing/processor.c
diff options
context:
space:
mode:
authorMartin Willi <martin@revosec.ch>2013-07-19 15:27:07 +0200
committerMartin Willi <martin@revosec.ch>2013-07-19 15:30:22 +0200
commitdcd5129c2524401ebc0e566bfd389157e61d31f6 (patch)
tree2f8f20147c689df7d5651d7040453d66288544bf /src/libstrongswan/processing/processor.c
parent2fa92ad25648dbe3e54a06cff15ae41068797c59 (diff)
downloadstrongswan-dcd5129c2524401ebc0e566bfd389157e61d31f6.tar.bz2
strongswan-dcd5129c2524401ebc0e566bfd389157e61d31f6.tar.xz
processor: force synchronous execute_job() if set_threads(0) has been called
During daemon shutdown, some idle threads might be lingering around even if set_threads(0) already has been called. To avoid any races, we enforce synchronous execution of the job.
Diffstat (limited to 'src/libstrongswan/processing/processor.c')
-rw-r--r--src/libstrongswan/processing/processor.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/libstrongswan/processing/processor.c b/src/libstrongswan/processing/processor.c
index e00216e07..adbd95685 100644
--- a/src/libstrongswan/processing/processor.c
+++ b/src/libstrongswan/processing/processor.c
@@ -408,7 +408,7 @@ METHOD(processor_t, execute_job, void,
bool queued = FALSE;
this->mutex->lock(this->mutex);
- if (get_idle_threads_nolock(this))
+ if (this->desired_threads && get_idle_threads_nolock(this))
{
prio = sane_prio(job->get_priority(job));
job->status = JOB_STATUS_QUEUED;