diff --git a/src/main/java/net/minecraft/world/storage/ThreadedFileIOBase.java b/src/main/java/net/minecraft/world/storage/ThreadedFileIOBase.java index d9d6757..a4ee872 100644 --- a/src/main/java/net/minecraft/world/storage/ThreadedFileIOBase.java +++ b/src/main/java/net/minecraft/world/storage/ThreadedFileIOBase.java @@ -82,4 +82,10 @@ this.isThreadWaiting = false; } + + public void waitForFinish(IThreadedFileIO special) throws InterruptedException + { + while (threadedIOQueue.contains(special)) + Thread.sleep(10L); + } } diff --git a/src/main/java/org/ultramine/server/world/imprt/ImportChunkLoader.java b/src/main/java/org/ultramine/server/world/imprt/ImportChunkLoader.java index 01312d0..e5ffec7 100644 --- a/src/main/java/org/ultramine/server/world/imprt/ImportChunkLoader.java +++ b/src/main/java/org/ultramine/server/world/imprt/ImportChunkLoader.java @@ -67,11 +67,11 @@ if(regionCache.size() > limit) { try { - ThreadedFileIOBase.threadedIOInstance.waitForFinish(); - } catch (InterruptedException interruptedexception) {} + ThreadedFileIOBase.threadedIOInstance.waitForFinish(this); + } catch (InterruptedException ignored) {} for(RegionFile region : regionCache.values()) - try{region.close();}catch(IOException igrored){} + try{region.close();}catch(IOException ignored){} regionCache.clear(); } }