X-Git-Url: http://git.openwrt.org/?a=blobdiff_plain;f=runqueue.c;h=189a00555e12cb43a087dce5d2fd4783e1e23344;hb=11e8afea;hp=1bdb48e157e88b611846f91819e3426a69198f76;hpb=316e3fb6c28ab3a2244d059fc3b9429df8cc9f0a;p=project%2Flibubox.git diff --git a/runqueue.c b/runqueue.c index 1bdb48e..189a005 100644 --- a/runqueue.c +++ b/runqueue.c @@ -186,8 +186,6 @@ void runqueue_task_kill(struct runqueue_task *t) runqueue_task_complete(t); if (running && t->type->kill) t->type->kill(q, t); - if (t->complete) - t->complete(q, t); runqueue_start_next(q); } @@ -205,6 +203,8 @@ void runqueue_resume(struct runqueue *q) void runqueue_task_complete(struct runqueue_task *t) { + struct runqueue *q = t->q; + if (!t->queued) return; @@ -215,6 +215,8 @@ void runqueue_task_complete(struct runqueue_task *t) t->queued = false; t->running = false; t->cancelled = false; + if (t->complete) + t->complete(q, t); runqueue_start_next(t->q); }