summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main/java/net/minecraft/server/NetworkWriterThread.java68
1 files changed, 68 insertions, 0 deletions
diff --git a/src/main/java/net/minecraft/server/NetworkWriterThread.java b/src/main/java/net/minecraft/server/NetworkWriterThread.java
new file mode 100644
index 00000000..19db5663
--- /dev/null
+++ b/src/main/java/net/minecraft/server/NetworkWriterThread.java
@@ -0,0 +1,68 @@
+package net.minecraft.server;
+
+import java.io.IOException;
+
+class NetworkWriterThread extends Thread {
+
+ final NetworkManager a;
+
+ NetworkWriterThread(NetworkManager networkmanager, String s) {
+ super(s);
+ this.a = networkmanager;
+ }
+
+ public void run() {
+ Object object = NetworkManager.a;
+
+ synchronized (NetworkManager.a) {
+ ++NetworkManager.c;
+ }
+
+ while (true) {
+ boolean flag = false;
+
+ try {
+ flag = true;
+ if (!NetworkManager.a(this.a)) {
+ flag = false;
+ break;
+ }
+
+ while (NetworkManager.d(this.a)) {
+ ;
+ }
+
+ try {
+ if (NetworkManager.e(this.a) != null) {
+ NetworkManager.e(this.a).flush();
+ }
+ } catch (IOException ioexception) {
+ if (!NetworkManager.f(this.a)) {
+ NetworkManager.a(this.a, (Exception) ioexception);
+ }
+
+ ioexception.printStackTrace();
+ }
+
+ try {
+ sleep(2L);
+ } catch (InterruptedException interruptedexception) {
+ ;
+ }
+ } finally {
+ if (flag) {
+ Object object1 = NetworkManager.a;
+
+ synchronized (NetworkManager.a) {
+ --NetworkManager.c;
+ }
+ }
+ }
+ }
+
+ object = NetworkManager.a;
+ synchronized (NetworkManager.a) {
+ --NetworkManager.c;
+ }
+ }
+}