Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Программирование под Unix/Linux > Удаление семафора при крахе программы


Автор: z7ql 26.9.2013, 14:31
Доброго времени суток.
Имеем:
  • N процессов
  • Существует общая для них критическая секция
  • Для разделения доступа используются семафоры (например http://man7.org/linux/man-pages/man3/sem_init.3.html)
  • Один из процессов вощёл в критическую секцию, где произошло аварийное его завершение. Освободить семафор он не успел.
Собственно вопросы:
1. Обладает ли система средствами снятия блокировок с семафоров для упавших процессов?
2. Будет ли удалён семафор, если init_sem было вызвано n раз, а destroy n-1 раз?
PS. На основе приведённой http://man7.org/linux/man-pages/man3/sem_init.3.html существует подозрение, что должен быть один главный поток - хозяин семафора, который по завершении его и убивает. Верно ли это?

Добавлено @ 14:45
Ушёл курить мануалы. Предложения и мысли по теме приветствуются. Хорошего дня smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)