多线程

我真的好奇,为什么实现pthread_mutex_lock的所有源代码都不会按照定义测试它的返回值:

pthread的文档

即使在书中,例子也不测试锁是否出错,代码只是做锁。

我错过了什么原因让它不被测试?


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


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

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

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

链接地址: http://www.djcxy.com/p/52913.html

上一篇: multithreading

下一篇: Setting authentication header for WebBrowser control