diff options
author | Alkalus <3060479+draknyte1@users.noreply.github.com> | 2018-05-29 16:34:22 +1000 |
---|---|---|
committer | Alkalus <3060479+draknyte1@users.noreply.github.com> | 2018-05-29 16:34:22 +1000 |
commit | 272cd6156d1dc92985b613511b4cae62ef516bb1 (patch) | |
tree | 3c3a4502e5f57473a50171eae8eec676f9f74320 /src/Java/gtPlusPlus/xmod/gregtech/api/objects | |
parent | 45c071b2ac73abc28671bbaa087dec075e4254c0 (diff) | |
download | GT5-Unofficial-272cd6156d1dc92985b613511b4cae62ef516bb1.tar.gz GT5-Unofficial-272cd6156d1dc92985b613511b4cae62ef516bb1.tar.bz2 GT5-Unofficial-272cd6156d1dc92985b613511b4cae62ef516bb1.zip |
% Changed max thread life to 300 seconds.
$ More thread safety.
- Removed useless EIO tooltip variables.
Diffstat (limited to 'src/Java/gtPlusPlus/xmod/gregtech/api/objects')
-rw-r--r-- | src/Java/gtPlusPlus/xmod/gregtech/api/objects/GregtechBufferThread.java | 25 |
1 files changed, 12 insertions, 13 deletions
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/objects/GregtechBufferThread.java b/src/Java/gtPlusPlus/xmod/gregtech/api/objects/GregtechBufferThread.java index 47c53d18f1..cf477b0889 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/api/objects/GregtechBufferThread.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/api/objects/GregtechBufferThread.java @@ -1,8 +1,8 @@ package gtPlusPlus.xmod.gregtech.api.objects; -import java.util.HashMap; import java.util.List; -import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ConcurrentMap; import net.minecraft.init.Items; import net.minecraft.inventory.IInventory; @@ -18,9 +18,10 @@ import gtPlusPlus.xmod.gregtech.common.tileentities.automation.GT_MetaTileEntity public class GregtechBufferThread extends Thread { - public static final Map<String, GregtechBufferThread> mBufferThreadAllocation = new HashMap<String, GregtechBufferThread>(); + public static final ConcurrentMap<String, GregtechBufferThread> mBufferThreadAllocation = new ConcurrentHashMap<String, GregtechBufferThread>(); private final BlockPos mBlockPos; - private int mLifeCycleTime = 300; + private final int mMaxLife = 300; + private int mLifeCycleTime = mMaxLife; private final String mID; public static synchronized final GregtechBufferThread getBufferThread(BlockPos pos) { @@ -51,11 +52,12 @@ public class GregtechBufferThread extends Thread { Logger.INFO("[SB] Created a SuperBuffer Thread for dimension "+mID+"."); } } + + public synchronized int getTimeLeft() { + return this.mLifeCycleTime; + } public synchronized void fillStacksIntoFirstSlots(GT_MetaTileEntity_ThreadedChestBuffer mBuffer) { - if (mLifeCycleTime < (Short.MAX_VALUE-10)){ - mLifeCycleTime += 10; - } for (int i = 0; i < mBuffer.mInventorySynchro.length - 1; ++i) { for (int j = i + 1; j < mBuffer.mInventorySynchro.length - 1; ++j) { if (mBuffer.mInventorySynchro[j] != null && (mBuffer.mInventorySynchro[i] == null @@ -68,9 +70,6 @@ public class GregtechBufferThread extends Thread { } public synchronized boolean moveItems(final IGregTechTileEntity aBaseMetaTileEntity, final long aTimer, GT_MetaTileEntity_ThreadedBuffer mBuffer) { - if (mLifeCycleTime < (Short.MAX_VALUE-10)){ - mLifeCycleTime += 10; - } final byte mTargetStackSize = (byte) mBuffer.mTargetStackSize; final int tCost = GT_Utility.moveOneItemStack((Object) aBaseMetaTileEntity, (Object) aBaseMetaTileEntity.getTileEntityAtSide(aBaseMetaTileEntity.getBackFacing()), @@ -91,7 +90,7 @@ public class GregtechBufferThread extends Thread { && (aBaseMetaTileEntity.hasWorkJustBeenEnabled() || aBaseMetaTileEntity.hasInventoryBeenModified() || aTimer % 200L == 0L || mBuffer.mSuccess > 0)) { --mBuffer.mSuccess; - if (mLifeCycleTime < (Short.MAX_VALUE-1)){ + if (mLifeCycleTime < (mMaxLife-1)){ mLifeCycleTime += 1; } //Logger.INFO("Ticking SB @ "+mBuffer.getLogicThread().mBlockPos.getUniqueIdentifier() + " | Time Left: "+mLifeCycleTime); @@ -192,8 +191,8 @@ public class GregtechBufferThread extends Thread { mLifeCycleTime = 0; } //Prevent Overflows - if (mLifeCycleTime > Short.MAX_VALUE) { - mLifeCycleTime = Short.MAX_VALUE; + if (mLifeCycleTime > mMaxLife) { + mLifeCycleTime = mMaxLife; } try { sleep(1000); |