31 uint64_t frameCount = 0;
35 using ObjectsToDelete = std::list<ObectToDelete>;
37 std::atomic_uint64_t frameCount = 0;
38 uint64_t retainForFrameCount = 3;
43 void advance(ref_ptr<FrameStamp> frameStamp);
45 void add(ref_ptr<Object>
object)
47 std::scoped_lock lock(_mutex);
48 _objectsToDelete.push_back(ObectToDelete{frameCount + retainForFrameCount,
object});
55 std::scoped_lock lock(_mutex);
56 for (
auto&
object : objects)
58 _objectsToDelete.emplace_back(ObectToDelete{frameCount + retainForFrameCount,
object});
63 void wait_then_clear();
68 virtual ~DeleteQueue();
71 std::condition_variable _cv;
72 ObjectsToDelete _objectsToDelete;
73 ref_ptr<ActivityStatus> _status;