Я работаю над приложением, в котором несколько многопоточных процессов пытаются получить блокировку файлов общей памяти, управляемых с помощью boost :: interprocess (scoped_lock для named_mutex).
Похоже, что если один из этих процессов сбрасывает ядро, удерживая блокировку файла общей памяти, все остальные процессы в конечном итоге ожидают снятия этой блокировки.
Любые идеи о том, как это можно преодолеть? Я хочу убедиться, что когда процесс, который удерживает блокировку, умирает, он должен гарантировать, что блокировка снята.
Одна проблема, которую я вижу, заключается в том, что я не вызываю деструктор объекта named_mutex. Может ли это быть причиной этой проблемы? Гарантированно вызывается деструктор при сбросе ядра процесса?
Спасибо!
Задача ещё не решена.
Других решений пока нет …