1
我是內核模塊的新手。使用等待隊列,我阻塞線程,直到緩衝區有數據。使用hrtimer
,我定期喚醒隊列。現在,問題是我刪除了內核模塊後,我看到"thread1"
進程仍在運行。我認爲問題在於等待隊列正在等待,並且進程在這裏被阻塞。請幫助我如何在刪除我的模塊時殺死等待隊列。 內核線程爲內等待如何殺死內核模塊中的等待隊列?
void thread1(void)
{
while (thread_running) {
...
wait_event_interruptible(wait_queue, does_buffer_have_data());
...
}
}
你的問題記得我[WinAPI問題](http://stackoverflow.com/questions/10866311/getmessage-with-a-timeout)。在完成內核模塊之前,應該將'thread_running'設置爲false,並且_join_ ** thread1 **等待您的計時器喚醒隊列並且線程能夠結束。 – Youka
通過「線程」,我不確定您是指的是某個用戶進程或正在使用您的內核模塊的線程,還是您指的是您的模塊創建的內核線程。 –
@Ian Abbott:我指的是我的模塊創建的內核線程。 – Karthik