Я портирую приложение Windows на Linux и у меня проблема с синхронизацией.
В Windows я использую системный уровень с именем mutex для синхронизации доступа к блоку общей памяти.
Как мне эмулировать это в Linux? Я создал семафор SystemV, используя semget. Проблема в том, что он не реентерабельный, если я его уже держу, он заблокируется, в отличие от Windows. Я мог бы добавить к нему счетчик ссылок, но тогда мне нужно было бы синхронизировать доступ к этому, что означает другой (на этот раз только для текущего процесса) мьютекс.
Есть ли где-нибудь класс, обеспечивающий повторную входящую межпроцессную блокировку (возможно в Boost)?
Кстати, использование блокировки файлов недопустимо, так как она, вероятно, будет слишком медленной (мне нужна связь со сверхнизкой задержкой между двумя процессами).