diff options
author | Alan Stern <stern@rowland.harvard.edu> | 2005-10-30 15:01:40 -0800 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2005-10-30 17:37:17 -0800 |
commit | 61e1a9ea4b425eb8c3b4965c35fe953bd881728f (patch) | |
tree | 2dcf017eedd4a72698593c878aff3ae31e3a6b09 /include | |
parent | 83521d3eb8dd2dfb04dd78b4733e9766f61bb47e (diff) | |
download | op-kernel-dev-61e1a9ea4b425eb8c3b4965c35fe953bd881728f.zip op-kernel-dev-61e1a9ea4b425eb8c3b4965c35fe953bd881728f.tar.gz |
[PATCH] Add kthread_stop_sem()
Enhance the kthread API by adding kthread_stop_sem, for use in stopping
threads that spend their idle time waiting on a semaphore.
Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/kthread.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/include/linux/kthread.h b/include/linux/kthread.h index 3fa7864..ebdd41f 100644 --- a/include/linux/kthread.h +++ b/include/linux/kthread.h @@ -70,6 +70,18 @@ void kthread_bind(struct task_struct *k, unsigned int cpu); int kthread_stop(struct task_struct *k); /** + * kthread_stop_sem: stop a thread created by kthread_create(). + * @k: thread created by kthread_create(). + * @s: semaphore that @k waits on while idle. + * + * Does essentially the same thing as kthread_stop() above, but wakes + * @k by calling up(@s). + * + * Returns the result of threadfn(), or -EINTR if wake_up_process() + * was never called. */ +int kthread_stop_sem(struct task_struct *k, struct semaphore *s); + +/** * kthread_should_stop: should this kthread return now? * * When someone calls kthread_stop on your kthread, it will be woken |