我有一个共享库,在其中创建了带有信号灯的某些功能。我正在使用boost::interprocess::named_semaphore
周围包裹着薄薄的包装纸。我现在正在将该库与一个小程序动态链接。
我遇到的问题是运行我的应用程序后,信号灯没有被删除。仅在Windows上会发生此问题,而在Linux上确实会删除信号灯。现在,我在我提到的包装器的析构函数中调用boost::interprocess::named_semaphore::remove
,因为named_semaphore
本身并不这样做。
此外,如果我直接在应用程序中调用boost::interprocess::named_semaphore::remove
而不是在库代码内部,则信号灯会被删除!奇怪!
有什么想法可能会出问题吗?