aboutsummaryrefslogtreecommitdiffstats
path: root/src/libcharon/processing/jobs/acquire_job.c
diff options
context:
space:
mode:
authorTobias Brunner <tobias@strongswan.org>2012-06-19 10:45:17 +0200
committerTobias Brunner <tobias@strongswan.org>2012-06-25 17:10:28 +0200
commit7fec83af28f233a02b7ae08c6fd4de65799cb6b4 (patch)
treec1093faa3be57635e0cb8baf112c6edfaa3001e9 /src/libcharon/processing/jobs/acquire_job.c
parent18d21a57df6085e1738a92d5a352ec17d314a753 (diff)
downloadstrongswan-7fec83af28f233a02b7ae08c6fd4de65799cb6b4.tar.bz2
strongswan-7fec83af28f233a02b7ae08c6fd4de65799cb6b4.tar.xz
Give processor_t more control over the lifecycle of a job
Jobs are now destroyed by the processor, but they are allowed to reschedule themselves. That is, parts of the reschedule functionality already provided by callback_job_t is moved to the processor. Not yet fully supported is JOB_REQUEUE_DIRECT and canceling jobs. Note: job_t.destroy() is now called not only for queued jobs but also after execution or cancellation of jobs. job_t.status can be used to decide what to do in said method.
Diffstat (limited to 'src/libcharon/processing/jobs/acquire_job.c')
-rw-r--r--src/libcharon/processing/jobs/acquire_job.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/libcharon/processing/jobs/acquire_job.c b/src/libcharon/processing/jobs/acquire_job.c
index 2d836b002..207f534ba 100644
--- a/src/libcharon/processing/jobs/acquire_job.c
+++ b/src/libcharon/processing/jobs/acquire_job.c
@@ -53,12 +53,12 @@ METHOD(job_t, destroy, void,
free(this);
}
-METHOD(job_t, execute, void,
+METHOD(job_t, execute, job_requeue_t,
private_acquire_job_t *this)
{
charon->traps->acquire(charon->traps, this->reqid,
this->src_ts, this->dst_ts);
- destroy(this);
+ return JOB_REQUEUE_NONE;
}
METHOD(job_t, get_priority, job_priority_t,