2016-10-12 68 views
1

我正在爲阻止read()和write()寫入Linux的簡單字符設備驅動程序。Linux驅動程序集取消點

我想要做的是將它們設置爲取消點,以便在掛起這些函數的線程上調用pthread_cancel將導致它終止。

如何將它們設置爲取消點?

在此先感謝。

回答

2

如果您正在編寫內核驅動程序,您只需確保read()write()正確地充當用戶空間的取消點即可確保它們在進程中等待時在進程中產生信號時立即返回在內核空間中(帶有短項目數或EINTR錯誤)。

這通常意味着使用wait_event_interruptible()然後檢查if (signal_pending(current))