Skip to content

Commit 6dbfce2

Browse files
committed
Added debug output to report DeleteQueue activity
1 parent 56d9577 commit 6dbfce2

2 files changed

Lines changed: 13 additions & 4 deletions

File tree

include/vsg/threading/DeleteQueue.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,8 @@ namespace vsg
3636
using ObjectsToDelete = std::list<ObjectToDelete>;
3737

3838
std::atomic_uint64_t frameCount = 0;
39-
uint64_t retainForFrameCount = 3;
39+
//uint64_t retainForFrameCount = 3;
40+
uint64_t retainForFrameCount = 4;
4041

4142
ActivityStatus* getStatus() { return _status; }
4243
const ActivityStatus* getStatus() const { return _status; }

src/vsg/threading/DeleteQueue.cpp

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
1111
</editor-fold> */
1212

1313
#include <vsg/io/Options.h>
14+
#include <vsg/io/Logger.h>
1415
#include <vsg/threading/DeleteQueue.h>
1516
#include <vsg/ui/FrameStamp.h>
1617

@@ -47,7 +48,7 @@ void DeleteQueue::wait_then_clear()
4748
std::list<ref_ptr<SharedObjects>> sharedObjectsToPrune;
4849

4950
{
50-
std::chrono::duration waitDuration = std::chrono::milliseconds(100);
51+
std::chrono::duration waitDuration = std::chrono::milliseconds(16);
5152
std::unique_lock lock(_mutex);
5253

5354
uint64_t previous_frameCount = frameCount.load();
@@ -67,6 +68,13 @@ void DeleteQueue::wait_then_clear()
6768

6869
size_t numObjectsToDelete = objectsToDelete.size();
6970

71+
info("DeleteQueue::wait_then_clear() ", frameCount.load(), ", numObjectsToDelete = ", numObjectsToDelete);
72+
73+
for(auto& objectToDelete : objectsToDelete)
74+
{
75+
info(" { ", objectToDelete.frameCount, ", ", objectToDelete.object, "}");
76+
}
77+
7078
objectsToDelete.clear();
7179

7280
if (numObjectsToDelete > 0)
@@ -86,12 +94,12 @@ void DeleteQueue::clear()
8694
// use a swap of the container to keep the time the mutex is acquired as short as possible
8795
{
8896
std::scoped_lock lock(_mutex);
89-
objectsToDelete.swap(objectsToDelete);
97+
objectsToDelete.swap(_objectsToDelete);
9098
}
9199

92100
size_t numObjectsToDelete = objectsToDelete.size();
93101

94-
//vsg::info("DeleteQueue::clear(), releasing ", nodesToRelease.size());
102+
vsg::info("DeleteQueue::clear(), releasing ", objectsToDelete.size());
95103
objectsToDelete.clear();
96104

97105
if (numObjectsToDelete > 0)

0 commit comments

Comments
 (0)