(который внутри именованный мьютекс/семафор, реализация из буста)
И наше приложение по каким-то причинам умерло (unhandled exception, или сигналом прибили).
Мьютекс остался залоченым.
Как после этого жить? Как понять, что мьютекс надо пересоздать?
ОС его разлочит
Линкс не разлочил :( (возможно, конечно, что я Ман не дочитал..)
Стандартный не разлочит. Может есть какие хитрые свойства у него, чтобы сам помирал, а может и нет. Самое простое таки перехватывать на самом верху приложения исключение и прибивать этот мютекс.
Там же boost::named_mutex
Что там в глубинах и деталях я не в курсе, может есть какой нативный хендл и можно ему задать автоумирание, а может и нельзя. Я бы ловил исключение и прибивал этот мютекс.
А если не в курсе - зачем лезть в дискуссию?)
Обсуждают сегодня