mirror of
https://github.com/actiontech/dble.git
synced 2026-04-24 15:18:46 -05:00
inner-1457:small memory leak when read from disk
Signed-off-by: dcy <dcy10000@gmail.com>
This commit is contained in:
@@ -222,6 +222,10 @@ public abstract class ResultDiskBuffer implements ResultExternal {
|
||||
}
|
||||
}
|
||||
|
||||
public void clear() {
|
||||
pool.recycle(readBuffer);
|
||||
}
|
||||
|
||||
private void checkReadBuffer(int offset) {
|
||||
// if offset is 0,then expend buffer; else set offset to 0,compact
|
||||
// buffer
|
||||
|
||||
+8
@@ -133,6 +133,14 @@ public class SortedResultDiskBuffer extends ResultDiskBuffer {
|
||||
resetHeap();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void close() {
|
||||
for (ResultDiskTape tape : tapes) {
|
||||
tape.clear();
|
||||
}
|
||||
super.close();
|
||||
}
|
||||
|
||||
protected void resetHeap() {
|
||||
if (heap == null)
|
||||
heap = new ArrayMinHeap<>(tapes.size(), this.heapCmp);
|
||||
|
||||
+6
@@ -68,6 +68,12 @@ public class UnSortedResultDiskBuffer extends ResultDiskBuffer {
|
||||
mainTape.readBuffer.clear();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void close() {
|
||||
mainTape.clear();
|
||||
super.close();
|
||||
}
|
||||
|
||||
@Override
|
||||
public RowDataPacket next() {
|
||||
file.seek(mainTape.pos);
|
||||
|
||||
Reference in New Issue
Block a user