等待删除shared_ptr的最佳方法是什么?

时间:2014-04-18 11:01:26

标签: c++

我有一个场景,其中创建为shared_ptr的对象是资源,而某些步骤必须等到这些资源完全释放。

shared_ptr具有成员函数use_count(),但依赖于此将意味着循环检查效率不高。

shared_ptr包装在另一个用自定义删除器构造它的类中是不是一个好主意,该自定义删除器设置了这个包装器的用户可以等待的事件标志(使用condition_variable)?

或者,创建我自己的shared_ptr是否有意义只是添加了这样的wait_for_released()功能?

1 个答案:

答案 0 :(得分:1)

您可能会使用由拥有资源的对象锁定的互斥锁 - 它们可以从析构函数中释放互斥锁。服务员等待互斥锁而不是与共享指针直接相关的任何内容。