From: Andre Noll <maan@systemlinux.org>
Date: Sat, 1 Mar 2014 11:55:38 +0000 (+0100)
Subject: sched: Remove ->owned_by_sched.
X-Git-Tag: v0.5.3~8^2~10
X-Git-Url: https://git.tuebingen.mpg.de/?a=commitdiff_plain;h=5254df7e470dc49a29f91fa8185b98c40246f5ea;p=paraslash.git

sched: Remove ->owned_by_sched.

With register_task() gone, the ->owned_by_sched field of struct sched
is always true (it gets set in task_register()). So we can remove it.
---

diff --git a/sched.c b/sched.c
index fe57e03e..1b83b704 100644
--- a/sched.c
+++ b/sched.c
@@ -45,8 +45,7 @@ static void unlink_and_free_task(struct task *t)
 {
 	PARA_INFO_LOG("freeing task %s\n", t->status);
 	list_del(&t->node);
-	if (t->owned_by_sched)
-		free(t);
+	free(t);
 }
 
 //#define SCHED_DEBUG 1
@@ -82,10 +81,7 @@ static unsigned sched_post_select(struct sched *s)
 		}
 		call_post_select(s, t);
 		t->notification = 0;
-		if (t->error < 0) {
-			if (!t->owned_by_sched)
-				list_del(&t->node);
-		} else
+		if (t->error >= 0)
 			num_running_tasks++;
 	}
 	return num_running_tasks;
@@ -169,8 +165,6 @@ int task_reap(struct task **tptr)
 	t = *tptr;
 	if (!t)
 		return 0;
-	if (!t->owned_by_sched)
-		return 0;
 	if (t->error >= 0)
 		return 0;
 	if (t->dead) /* will be freed in sched_post_select() */
@@ -234,7 +228,6 @@ struct task *task_register(struct task_info *info, struct sched *s)
 	t->pre_select = info->pre_select;
 	t->post_select = info->post_select;
 	t->context = info->context;
-	t->owned_by_sched = true;
 	list_add_tail(&t->node, &s->task_list);
 	return t;
 }
@@ -249,7 +242,6 @@ struct task *task_register(struct task_info *info, struct sched *s)
  */
 void *task_context(struct task *t)
 {
-	assert(t->owned_by_sched);
 	return t->context;
 }
 
diff --git a/sched.h b/sched.h
index 0b7df7e8..db6ee7dc 100644
--- a/sched.h
+++ b/sched.h
@@ -53,8 +53,6 @@ struct task {
 	char status[255];
 	/** If less than zero, the task was notified by another task. */
 	int notification;
-	/** Whether the task structure should be freed in sched_shutdown(). */
-	bool owned_by_sched;
 	/** True if task is in error state and exit status has been queried. */
 	bool dead;
 	/** Usually a pointer to the struct containing this task. */