summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorTahg <tahgtahv@gmail.com>2011-05-27 11:01:37 -0400
committerErik Broes <erikbroes@grum.nl>2011-05-28 00:33:16 +0200
commit9ec5d8b5dfc544a6873aa1bb48a07deedd1751fb (patch)
tree44bd09960bc01b0d86f3724e07a3bcd488f016b4 /src
parent1784e42d5fe0ac465cda0fa5629ba06d16b90551 (diff)
downloadcraftbukkit-9ec5d8b5dfc544a6873aa1bb48a07deedd1751fb.tar
craftbukkit-9ec5d8b5dfc544a6873aa1bb48a07deedd1751fb.tar.gz
craftbukkit-9ec5d8b5dfc544a6873aa1bb48a07deedd1751fb.tar.lz
craftbukkit-9ec5d8b5dfc544a6873aa1bb48a07deedd1751fb.tar.xz
craftbukkit-9ec5d8b5dfc544a6873aa1bb48a07deedd1751fb.zip
Improved packet handling
Diffstat (limited to 'src')
-rw-r--r--src/main/java/net/minecraft/server/NetworkManager.java3
-rw-r--r--src/main/java/net/minecraft/server/Packet.java9
2 files changed, 11 insertions, 1 deletions
diff --git a/src/main/java/net/minecraft/server/NetworkManager.java b/src/main/java/net/minecraft/server/NetworkManager.java
index f2bcbb72..b995864a 100644
--- a/src/main/java/net/minecraft/server/NetworkManager.java
+++ b/src/main/java/net/minecraft/server/NetworkManager.java
@@ -105,7 +105,8 @@ public class NetworkManager {
flag = true;
}
- if (this.z-- <= 0 && !this.o.isEmpty() && (this.f == 0 || System.currentTimeMillis() - ((Packet) this.o.get(0)).timestamp >= (long) this.f)) {
+ // CraftBukkit - add 'flag'
+ if ((!flag || this.z-- <= 0) && !this.o.isEmpty() && (this.f == 0 || System.currentTimeMillis() - ((Packet) this.o.get(0)).timestamp >= (long) this.f)) {
object = this.g;
synchronized (this.g) {
packet = (Packet) this.o.remove(0);
diff --git a/src/main/java/net/minecraft/server/Packet.java b/src/main/java/net/minecraft/server/Packet.java
index 620017eb..291bc721 100644
--- a/src/main/java/net/minecraft/server/Packet.java
+++ b/src/main/java/net/minecraft/server/Packet.java
@@ -69,6 +69,11 @@ public abstract class Packet {
int i;
try {
+ // CraftBukkit start - sleep while nothing to do
+ while(datainputstream.available() <= 0) {
+ Thread.sleep(10);
+ }
+ // CraftBukkit end
i = datainputstream.read();
if (i == -1) {
return null;
@@ -97,6 +102,10 @@ public abstract class Packet {
System.out.println("Connection reset");
return null;
}
+ catch (InterruptedException exception) {
+ System.out.println("Thread exception");
+ return null;
+ }
// CraftBukkit end
PacketCounter packetcounter = (PacketCounter) e.get(Integer.valueOf(i));