summaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
authorAlan Stern <stern@rowland.harvard.edu>2005-10-30 15:01:40 -0800
committerLinus Torvalds <torvalds@g5.osdl.org>2005-10-30 17:37:17 -0800
commit61e1a9ea4b425eb8c3b4965c35fe953bd881728f (patch)
tree2dcf017eedd4a72698593c878aff3ae31e3a6b09 /include/linux
parent83521d3eb8dd2dfb04dd78b4733e9766f61bb47e (diff)
downloadop-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/linux')
-rw-r--r--include/linux/kthread.h12
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
OpenPOWER on IntegriCloud