Я пытаюсь разделить неназванный мачарный семафор между двумя процессами. Я могу создать его и подождать по нему в том же процессе.Поделитесь неназванным семафором между процессами в Mac OS
semaphore_t semaphore = 0;
mach_error_t err = semaphore_create(mach_task_self(), &semaphore, SYNC_POLICY_FIFO, 0);
...
semaphore_wait(semaphore);
Но я хочу, чтобы отправить его в другой процесс (из которых я только имею mach_port_t), а затем пусть он semaphore_signal свой собственный процесс.
Я уже пробовал такие вещи, как:
mach_port_allocate(target, MACH_PORT_RIGHT_RECEIVE, targetSemaphore)
mach_port_insert_right(target, targetSemaphore, semaphore, MACH_MSG_TYPE_COPY_SEND)
Который даст ошибку, так как имя порта уже существует в целевом процессе или «неизвестная ошибка», если я не передать его в целевом процессе.
И даже:
mach_msg_send
mach_msg_receive
Но я не могу даже получить порт правой формы один процесс пыльников, чтобы отправить что-нибудь.
Что я делаю неправильно и это возможно?