我在一个正在处理的内核模块中定义了一个等待队列:
static DECLARE_WAIT_QUEUE_HEAD(WaitQ);在init_module()例程中,我创建了一个新的内核线程,该线程每隔几秒钟向控制台打印一次。
在我的cleanup_module中,我设置了一个变量,该变量告诉线程终止,然后将sleep_on(&WaitQ)作为cleanup_module中的最后一行。然后在线程例程中,当cleanup_module中设置的变量为true时调用wake_up(&WaitQ),然后调用complete_and_exit来终止线程。
我的问题是。当sleep_on(& WaitQ )被调用时,什么被添加到WaitQ。是作为一个整体的模块还是在init_module中启动的线程?
发布于 2011-10-24 22:35:23
都不是-添加到队列的是导致模块删除的"rmmod“处理器的线程(任务)。
https://stackoverflow.com/questions/7877059
复制相似问题