LinuxThreads / NPTL:将常量值0赋给pthread_t类型的变量(忽略POSIX兼容性)是否可靠?

时间:2013-07-17 13:15:42

标签: linux pthreads nptl linuxthreads

我正在使用POSIX线程审查代码并使用旧版LinuxThreads在POSIX线程上运行(交叉编译代码,目标MIPS / uClibc,如果它有任何区别)。如果NPTL实现的答案有任何不同,我想知道这也是为了完整性。关于类型pthread_t的问题我可以从C库头文件中看到,对于uClibc和glibc(实际上是嵌入式GNU C库,我只能将Ubuntu作为参考)定义为unsigned long int

问题......类型pthread_t的变量用于存储属性的所有者。 困扰我的是,我看到0的分配标记没有线程拥有该属性;它困扰我,因为我知道POSIX标准规定pthread_t类型是不透明的,我们不应该对类型做任何假设。我知道最好是例如使用布尔标志来确定属性是否由线程拥有。我认为代码应该被修复,以便在较长时间内遵守POSIX标准(如果不是出于其他原因,那么为了保护后代免于思考代码的健壮性),但是现在对于短期我需要知道以下问题的答案:我们可以假设pthread_t 0的{​​{1}}值永远不能由pthread_create(3) 在此平台中设置 (据我所知,我们应该获得pthread_t值的唯一方法),随后:是赋值0的一种标记属性的强大方法在此平台中未使用

0 个答案:

没有答案