From 45c071b2ac73abc28671bbaa087dec075e4254c0 Mon Sep 17 00:00:00 2001 From: Alkalus <3060479+draknyte1@users.noreply.github.com> Date: Tue, 29 May 2018 16:22:10 +1000 Subject: $ Reduced cpu usage in EIO tooltip handler. $ Made GTPP clean up any left-over threads when the server shuts down (Mostly for SSP memory leaks). $ Made each buffer get a unique thread. Thread life reduced greatly and capped out at 32k seconds. --- .../GT_MetaTileEntity_ThreadedBuffer.java | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) (limited to 'src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity') diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_ThreadedBuffer.java b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_ThreadedBuffer.java index c7914331b7..8dc0a8c2cf 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_ThreadedBuffer.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_ThreadedBuffer.java @@ -6,6 +6,7 @@ import net.minecraft.entity.player.EntityPlayer; import gregtech.api.enums.GT_Values; import gregtech.api.util.GT_Utility; +import gtPlusPlus.api.objects.minecraft.BlockPos; import gtPlusPlus.xmod.gregtech.api.objects.GregtechBufferThread; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; @@ -18,6 +19,7 @@ import gregtech.api.interfaces.ITexture; public abstract class GT_MetaTileEntity_ThreadedBuffer extends GT_MetaTileEntity_Buffer { protected GregtechBufferThread mLogicThread; + protected BlockPos mPos; public final ItemStack[] mInventorySynchro; public GT_MetaTileEntity_ThreadedBuffer(final int aID, final String aName, final String aNameRegional, final int aTier, @@ -69,7 +71,7 @@ public abstract class GT_MetaTileEntity_ThreadedBuffer extends GT_MetaTileEntity return mLogicThread; } else { - return this.mLogicThread = GregtechBufferThread.getBufferThread(this.getBaseMetaTileEntity().getWorld()); + return this.mLogicThread = GregtechBufferThread.getBufferThread(mPos); } } @@ -297,8 +299,17 @@ public abstract class GT_MetaTileEntity_ThreadedBuffer extends GT_MetaTileEntity } public synchronized void onPostTick(final IGregTechTileEntity aBaseMetaTileEntity, final long aTimer) { - if (aBaseMetaTileEntity.isServerSide()) - getLogicThread().onPostTick(aBaseMetaTileEntity, aTimer, this); + if (aBaseMetaTileEntity.isServerSide()) { + if (mPos == null) { + mPos = new BlockPos(this.getBaseMetaTileEntity().getXCoord(), this.getBaseMetaTileEntity().getYCoord(), this.getBaseMetaTileEntity().getZCoord(), this.getBaseMetaTileEntity().getWorld()); + } + if (mLogicThread == null) { + mLogicThread = GregtechBufferThread.getBufferThread(mPos); + } + if (mLogicThread!= null) { + getLogicThread().onPostTick(aBaseMetaTileEntity, aTimer, this); + } + } } public void onFirstTick(final IGregTechTileEntity aBaseMetaTileEntity) { -- cgit