我正在努力将一些现有的Windows代码移植到linux上,但遇到了一些我不确定如何处理的事情。
该代码最初是RTX Windows,必须具有确定性。我遇到的第一件事是一个包含信号量和互斥对象的结构,并设置了指向互斥量和信号量的指针,以供其他调用者传递/使用。
volatile struct mystruct{
volatile pthread_mutex_t *qmutexid
volatile sem_t *qsemid
volatile int processID
volatile int msize
volatile char msgarray[]
}
此结构被转换为一块很大的内存,该数据具有通过链接列表队列进出的数据,但是信号量和互斥锁是确保完整性的必要条件。
我想知道的是,它们在分配指针后是否有效。
myfunctioninit (*qname, msg_size, depth)
{
struct muStruct struct1
pthread_mutex_t mutexQueAccess
status = pthread_mutex_init(&mutexQueAccess, null)
struct1->qmutexid = mutexAccess
}
另一部分是,窗口中的互斥锁是通过名称分配/访问的。其他进程需要访问此互斥锁,我该怎么做才能使互斥锁可以在多个进程/线程之间共享?