Я работаю над переносом существующего кода Windows в Linux, и я наткнулся на то, что не совсем уверен, как с этим справиться.
Код изначально является окнами RTX и должен быть детерминированным.Первое, с чем я столкнулся, это структура, которая содержит объекты семафора и мьютекса и устанавливает указатели на мьютекс и семафор для передачи / использования другими вызывающими объектами.
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
}
Другая часть этого заключается в том, что мьютекс в окнах назначается / доступ по имени.Другие процессы нуждаются в доступе к этому мьютексу, как мне сделать так, чтобы мьютекс мог быть разделен между несколькими процессами / потоком?