【任务发布】SYS_SET_ROBUST_LIST系统调用

移植busybox的过程中发现了这个系统调用未被实现,简单来说是一个互斥锁,简单的描述如下,摘抄自 Linux下robust互斥锁实现

一、robust互斥锁

这种类型的锁可能不是POSIX标准中规定的锁,但是也有可能是,这个不太确定,暂时不管。这种类型的锁主要是解决当一个持有互斥锁的线程退出之后这个锁成为不可用状态的一个问题来的。可以想象,一个线程可能持有很多的锁,也可能没有,如果此时有一个外部(被其它任务kill)或者内部(出现访问问题或者直接pthread_exit)原因而推出线程,此时虽然这个线程退出是一了百了了,但是其它的线程还是希望能够坚强的运行下去,此时就需要有一些机制来保证这个线程持有的那些希望被自动释放的锁有一种方法能够被释放,而这个工作就责无旁贷的落在了内核的身上。
从具体实现上来看,它打破了我们常规的“用户态VS内核态”的模式,模糊了用户和内核的概念,因为内核会遍历用户态提供的链表,这个是一个危险的操作,因为这个链表对内核来说是可能出现环路的,内存访问错误倒是小事。在魔兽中,兽族的斧头兵在冲锋陷阵的时候喊得口号是“为了部落”,而内核的程序员在写程序的时候喊的口号一定是“为了效率”。

所以感觉是需要支持这个robust锁