我必须在Haiku开源项目的pthread.h中的struct _pthread_rwlock中找到一个未命名的联合。我开始使用c ++(过去的继承,多态和类)的一些知识开始这个任务,但我发现我学到的东西在我的情况下根本没有帮助。我打开了头文件和一个名为pthread_rwlock.cpp的源文件,并试图寻找未命名的联合,但是在这两个文件中似乎都没有联合。找到问题的正确方法是什么?
答案 0 :(得分:0)
在pthreads.h
中,您要查找的结构名称为pthread_rwlock_t
。如果您向后关注包含文件,则会在sys/types.h
中看到以下内容:
typedef struct _pthread_rwlock pthread_rwlock_t;
...
struct _pthread_rwlock {
__haiku_std_uint32 flags;
__haiku_std_int32 owner;
union {
struct {
__haiku_std_int32 sem;
} shared;
struct {
__haiku_std_int32 lock_sem;
__haiku_std_int32 lock_count;
__haiku_std_int32 reader_count;
__haiku_std_int32 writer_count;
void* waiters[2];
} local;
} u;
};
我假设这里的工会是你正在寻找的工会。截至我正在查看的版本(d06f5808),联盟不再是匿名的。