Use FIFO queue for loaded replays in replay center/viewer

This commit is contained in:
johni0702
2015-08-14 15:16:56 +02:00
parent 0b1e4b8e3e
commit 28f4356d34
2 changed files with 21 additions and 8 deletions

View File

@@ -33,6 +33,7 @@ import java.io.File;
import java.io.IOException;
import java.util.*;
import java.util.List;
import java.util.concurrent.ConcurrentLinkedQueue;
public class GuiReplayViewer extends GuiScreen implements GuiYesNoCallback {
@@ -52,6 +53,8 @@ public class GuiReplayViewer extends GuiScreen implements GuiYesNoCallback {
private GuiButton deleteButton;
private boolean delete_file = false;
private Queue<Runnable> loadedReplaysQueue = new ConcurrentLinkedQueue<Runnable>();
private Thread fileReloader;
private class FileReloaderThread extends Thread {
@@ -86,7 +89,7 @@ public class GuiReplayViewer extends GuiScreen implements GuiYesNoCallback {
}
final File thumb = tmp;
mc.addScheduledTask(new Runnable() {
loadedReplaysQueue.offer(new Runnable() {
@Override
public void run() {
addEntry(file, metaData, thumb);
@@ -273,6 +276,14 @@ public class GuiReplayViewer extends GuiScreen implements GuiYesNoCallback {
}
}
@Override
public void updateScreen() {
super.updateScreen();
while (!loadedReplaysQueue.isEmpty()) {
loadedReplaysQueue.poll().run();
}
}
private boolean currentFileUploaded = false;
public void setButtonsEnabled(boolean b) {