标签: c++ boost semaphore interprocess
我正在尝试使用boost :: interprocess :: named_semaphore来限制我的应用程序实例的数量(一个)。我只是发现我不能依靠d-tor来清理信号量,我必须调用boost :: interprocess :: remove()来清理信号量。我的问题是,当应用程序崩溃或正在调试并且停止应用程序时该怎么办。我不想在崩溃后告诉用户重新启动。或者,如果我在Windows下运行,还有更好的解决方案吗?