У меня есть общая библиотека, в которой я создал некоторые функции с семафорами.Я использую boost::interprocess::named_semaphore
с тонкой оберткой вокруг него.Эта библиотека, которую я сейчас динамически связываю с небольшой программой.
Проблема, с которой я сталкиваюсь, заключается в том, что семафоры не удаляются после запуска моего приложения.Эта проблема возникает только в Windows, в Linux семафоры удаляются.Теперь, Я вызываю boost::interprocess::named_semaphore::remove
в деструкторе обертки, о котором я упоминал, потому что named_semaphore
не делает этого сам.
Кроме того, если я вызываю boost::interprocess::named_semaphore::remove
непосредственно в моемПриложение, а не внутри кода библиотеки, семафор удаляется !Странно!
Есть идеи, что может пойти не так?