pthread_mutex_lock返回未测试

时间:2011-06-09 09:07:22

标签: multithreading coding-style pthreads

我真的想知道为什么所有的源代码都实现了 pthread_mutex_lock 永远不会按照定义测试其返回值:

documentation of pthread

即使在书中,示例也不会测试锁是否出错,代码只是执行锁定。

我有什么理由错过让它未经测试吗?

2 个答案:

答案 0 :(得分:3)

基本上,唯一的“有趣”错误是EINVAL,在大多数程序中只会因为内存损坏而发生,或者,正如我从我自己的痛苦经历中所知,在析构函数已经破坏一些程序之后的程序关闭期间互斥。我看到它的方式,对这种错误的唯一合理的反应是中止程序,另一方面,如果由于程序已经关闭而错误地发生错误则非常不方便。当然,这可以解决,但它并不是那么简单,对大多数程序来说并没有多少。

答案 1 :(得分:1)

首先,我认为“所有源代码”和“从不测试”太强大了。我认为“一些”和“经常”会更准确。

在书中,为了清楚说明,通常会省略错误检查代码。

至于现实世界的代码,我想答案必须是认为失败的可能性非常低。这是一个很好的假设值得商榷。