Queuing multiple task_struct structures?
I would like to queue up multiple struct task_struct
s in my block device driver. Here, each task_struct
would correspond to a userlevel thread which uses the ioctl()
system call to send a userspace buffer to my block device driver. Once I queue up multiple task_struct
s, I would like to keep them on the queue until a开发者_运维问答 particular condition is met (i.e., the buffer has been written down to the disk).
So, my question is, how do I queue up multiple task_struct
s, put them to sleep, and then wake a subset of the queued task_struct
s when some condition is met?
You can call kthread_create
as many times as you want to create new threads, and then call wake_up
on whatever subset of threads you want.
精彩评论