diff options
author | Richard Braun <rbraun@sceen.net> | 2013-04-15 21:09:08 +0200 |
---|---|---|
committer | Richard Braun <rbraun@sceen.net> | 2013-04-15 21:09:08 +0200 |
commit | 434f06c437d7af0dc70acd6746d23c005550e031 (patch) | |
tree | fd2413b7fff9059980daaca307bcefcf5db2c452 | |
parent | d3a0a3140912d62602b7eaaf568a940f897b6d71 (diff) |
kern/task: new task_remove_thread function
-rw-r--r-- | kern/task.c | 8 | ||||
-rw-r--r-- | kern/task.h | 5 |
2 files changed, 13 insertions, 0 deletions
diff --git a/kern/task.c b/kern/task.c index 6e8eb5bf..000a723e 100644 --- a/kern/task.c +++ b/kern/task.c @@ -107,6 +107,14 @@ task_add_thread(struct task *task, struct thread *thread) } void +task_remove_thread(struct task *task, struct thread *thread) +{ + spinlock_lock(&task->lock); + list_remove(&thread->task_node); + spinlock_unlock(&task->lock); +} + +void task_info(struct task *task) { struct thread *thread; diff --git a/kern/task.h b/kern/task.h index 0cebdb21..67599399 100644 --- a/kern/task.h +++ b/kern/task.h @@ -60,6 +60,11 @@ int task_create(struct task **taskp, const char *name); void task_add_thread(struct task *task, struct thread *thread); /* + * Remove a thread from a task. + */ +void task_remove_thread(struct task *task, struct thread *thread); + +/* * Display task information. * * If task is NULL, this function displays all tasks. |