Skip to content

Commit

Permalink
add memory_tracker_holder in TrackedMppDataPacket (#5840)
Browse files Browse the repository at this point in the history
close #5830
  • Loading branch information
bestwoody committed Sep 10, 2022
1 parent 6aa3b33 commit 51b9ae4
Showing 1 changed file with 10 additions and 4 deletions.
14 changes: 10 additions & 4 deletions dbms/src/Flash/Mpp/TrackedMppDataPacket.h
Original file line number Diff line number Diff line change
Expand Up @@ -46,17 +46,22 @@ inline size_t estimateAllocatedSize(const mpp::MPPDataPacket & data)
return ret;
}

inline std::shared_ptr<MemoryTracker> getSharedPtrOfMemTracker(MemoryTracker * memory_tracker)
{
return memory_tracker ? memory_tracker->shared_from_this() : nullptr;
}

struct MemTrackerWrapper
{
MemTrackerWrapper(size_t _size, MemoryTracker * memory_tracker)
: memory_tracker(memory_tracker)
: memory_tracker(getSharedPtrOfMemTracker(memory_tracker))
, size(0)
{
alloc(_size);
}

explicit MemTrackerWrapper(MemoryTracker * memory_tracker)
: memory_tracker(memory_tracker)
: memory_tracker(getSharedPtrOfMemTracker(memory_tracker))
, size(0)
{}

Expand Down Expand Up @@ -88,7 +93,7 @@ struct MemTrackerWrapper
{
int bak_size = size;
freeAll();
memory_tracker = new_memory_tracker;
memory_tracker = getSharedPtrOfMemTracker(new_memory_tracker);
alloc(bak_size);
}
~MemTrackerWrapper()
Expand All @@ -100,7 +105,8 @@ struct MemTrackerWrapper
{
free(size);
}
MemoryTracker * memory_tracker;

std::shared_ptr<MemoryTracker> memory_tracker;
size_t size = 0;
};

Expand Down

0 comments on commit 51b9ae4

Please sign in to comment.