Мне было бы интересно узнать, какой источник вы использовали, который сказал, что SEM_UNDO не гарантированно будет работать. Я не слышал этого раньше. Кажется, я помню, что читал статьи, в которых утверждалось, что SYSV IPC в Linux в целом содержит ошибки, но это было довольно давно. Мне интересно, является ли ваша информация просто артефактом прошлого.
Еще одна вещь, которую следует учитывать (если я правильно помню), - это то, что семафоры SYSV могут сообщать вам PID последнего процесса, выполняющего операцию семафора. Если вы повесите трубку, вы сможете запросить, не активен ли процесс, удерживающий блокировку. Поскольку любой процесс (не только тот, который удерживает блокировку) может работать с семафором, вы можете осуществлять управление таким образом.
Наконец, я добавлю шаг для очередей сообщений. Они могут не соответствовать вашим требованиям к скорости, но обычно они не намного медленнее, чем разделяемая память. По сути, они в любом случае делают все, что вам нужно делать вручную с SM, но ОС делает все это под прикрытием. Вы получаете почти такую же скорость благодаря синхронизации, атомарности, простоте использования и полностью проверенному механизму бесплатно.