Skip to content

Commit 15d86e3

Browse files
author
jython234
committed
Fix the queues.
1 parent 9211da6 commit 15d86e3

1 file changed

Lines changed: 16 additions & 14 deletions

File tree

src/main/java/net/beaconpe/jraklib/server/JRakLibServer.java

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,8 @@ All credit goes to the PocketMine Project (http://pocketmine.net)
2424
import net.beaconpe.jraklib.Logger;
2525

2626
import java.net.InetSocketAddress;
27-
import java.util.ArrayList;
28-
import java.util.Deque;
29-
import java.util.List;
30-
import java.util.concurrent.ConcurrentLinkedDeque;
27+
import java.util.*;
28+
import java.util.concurrent.*;
3129

3230
/**
3331
* JRakLib server.
@@ -38,8 +36,8 @@ public class JRakLibServer extends Thread{
3836
protected Logger logger;
3937
protected boolean shutdown = false;
4038

41-
protected Deque<byte[]> externalQueue;
42-
protected Deque<byte[]> internalQueue;
39+
protected List<byte[]> externalQueue;
40+
protected List<byte[]> internalQueue;
4341

4442
public JRakLibServer(Logger logger, int port, String _interface){
4543
if(port < 1 || port > 65536){
@@ -49,8 +47,8 @@ public JRakLibServer(Logger logger, int port, String _interface){
4947
this.logger = logger;
5048
this.shutdown = false;
5149

52-
externalQueue = new ConcurrentLinkedDeque<>();
53-
internalQueue = new ConcurrentLinkedDeque<>();
50+
externalQueue = new LinkedList<>();
51+
internalQueue = new LinkedList<>();
5452

5553
start();
5654
}
@@ -75,32 +73,36 @@ public Logger getLogger(){
7573
return logger;
7674
}
7775

78-
public Deque<byte[]> getExternalQueue(){
76+
public List<byte[]> getExternalQueue(){
7977
return externalQueue;
8078
}
8179

82-
public Deque<byte[]> getInternalQueue(){
80+
public List<byte[]> getInternalQueue(){
8381
return internalQueue;
8482
}
8583

8684
public void pushMainToThreadPacket(byte[] bytes){
87-
internalQueue.addLast(bytes);
85+
internalQueue.add(0, bytes);
8886
}
8987

9088
public byte[] readMainToThreadPacket(){
9189
if(!internalQueue.isEmpty()) {
92-
return internalQueue.pop();
90+
byte[] data = internalQueue.get(internalQueue.size() - 1);
91+
internalQueue.remove(data);
92+
return data;
9393
}
9494
return null;
9595
}
9696

9797
public void pushThreadToMainPacket(byte[] bytes){
98-
externalQueue.addLast(bytes);
98+
externalQueue.add(0, bytes);
9999
}
100100

101101
public byte[] readThreadToMainPacket(){
102102
if(!externalQueue.isEmpty()) {
103-
externalQueue.pop();
103+
byte[] data = externalQueue.get(externalQueue.size() - 1);
104+
externalQueue.remove(data);
105+
return data;
104106
}
105107
return null;
106108
}

0 commit comments

Comments
 (0)