【发布时间】:2017-02-21 13:31:50
【问题描述】:
有没有办法强制销毁 boost 日志核心单例?它可以通过以下方式访问:
boost::log::core::get();
它返回一个指向日志核心的共享指针。但是,我需要在我的应用程序关闭其他资源/分离 dll 等之前明确关闭/取消分配它...
这可能吗?
【问题讨论】:
标签: boost-log
有没有办法强制销毁 boost 日志核心单例?它可以通过以下方式访问:
boost::log::core::get();
它返回一个指向日志核心的共享指针。但是,我需要在我的应用程序关闭其他资源/分离 dll 等之前明确关闭/取消分配它...
这可能吗?
【问题讨论】:
标签: boost-log
不,单例仅在应用程序终止时被销毁。但是根据您要实现的目标,您可以使其释放某些资源。例如,通过调用remove_all_sinks,您可以使其释放所有接收器,这将导致它们被破坏,除非它们被其他地方引用。
【讨论】:
remove_all_sinks 返回后应该没有 Boost.Log 的线程处于活动状态。如果它们仍然处于活动状态,请创建一个带有重现和回溯的票证。