Linux驱动程序设置取消点

时间:2016-10-12 14:11:48

标签: linux kernel pthreads

我正在为Linux写一个简单的字符设备驱动程序,阻塞read()和write()。

我想要做的是将它们设置为取消点,以便在挂起在这些函数上的线程上调用pthread_cancel将导致它终止。

如何将它们设置为取消点?

提前致谢。

1 个答案:

答案 0 :(得分:2)

如果您正在编写内核驱动程序,那么您需要做的就是确保read()write()正确地用作用户空间的取消点,以确保它们在信号发生时立即返回当它在内核空间中等待时(在短项目计数或EINTR错误的情况下)在进程上引发。

这通常意味着使用wait_event_interruptible(),然后检查if (signal_pending(current))