runqueue should cal the complete handler from more places

Signed-off-by: John Crispin <blogic@openwrt.org>
This commit is contained in:
John Crispin 2013-07-02 18:31:25 +02:00
parent 316e3fb6c2
commit 11e8afea0f

View file

@ -186,8 +186,6 @@ void runqueue_task_kill(struct runqueue_task *t)
runqueue_task_complete(t); runqueue_task_complete(t);
if (running && t->type->kill) if (running && t->type->kill)
t->type->kill(q, t); t->type->kill(q, t);
if (t->complete)
t->complete(q, t);
runqueue_start_next(q); runqueue_start_next(q);
} }
@ -205,6 +203,8 @@ void runqueue_resume(struct runqueue *q)
void runqueue_task_complete(struct runqueue_task *t) void runqueue_task_complete(struct runqueue_task *t)
{ {
struct runqueue *q = t->q;
if (!t->queued) if (!t->queued)
return; return;
@ -215,6 +215,8 @@ void runqueue_task_complete(struct runqueue_task *t)
t->queued = false; t->queued = false;
t->running = false; t->running = false;
t->cancelled = false; t->cancelled = false;
if (t->complete)
t->complete(q, t);
runqueue_start_next(t->q); runqueue_start_next(t->q);
} }