Files
runelite/runescape-client/src/main/java/TaskHandler.java

177 lines
4.4 KiB
Java

import java.io.DataInputStream;
import java.net.InetAddress;
import java.net.Socket;
import java.net.URL;
import net.runelite.mapping.Export;
import net.runelite.mapping.Implements;
import net.runelite.mapping.ObfuscatedName;
import net.runelite.mapping.ObfuscatedSignature;
@ObfuscatedName("fz")
@Implements("TaskHandler")
public class TaskHandler implements Runnable {
@ObfuscatedName("qr")
@ObfuscatedSignature(
signature = "Lct;"
)
@Export("pcmStreamMixer")
static PcmStreamMixer pcmStreamMixer;
@ObfuscatedName("m")
@Export("javaVendor")
public static String javaVendor;
@ObfuscatedName("f")
@Export("javaVersion")
public static String javaVersion;
@ObfuscatedName("q")
@ObfuscatedSignature(
signature = "Lfm;"
)
@Export("current")
Task current;
@ObfuscatedName("w")
@ObfuscatedSignature(
signature = "Lfm;"
)
@Export("task0")
Task task0;
@ObfuscatedName("o")
@Export("thread")
Thread thread;
@ObfuscatedName("u")
@Export("isClosed")
boolean isClosed;
public TaskHandler() {
this.current = null;
this.task0 = null;
this.isClosed = false;
javaVendor = "Unknown";
javaVersion = "1.6";
try {
javaVendor = System.getProperty("java.vendor");
javaVersion = System.getProperty("java.version");
} catch (Exception var2) {
}
this.isClosed = false;
this.thread = new Thread(this);
this.thread.setPriority(10);
this.thread.setDaemon(true);
this.thread.start();
}
@ObfuscatedName("m")
@ObfuscatedSignature(
signature = "(I)V",
garbageValue = "-341374627"
)
@Export("close")
public final void close() {
synchronized(this) {
this.isClosed = true;
this.notifyAll();
}
try {
this.thread.join();
} catch (InterruptedException var3) {
}
}
@ObfuscatedName("f")
@ObfuscatedSignature(
signature = "(IIILjava/lang/Object;I)Lfm;",
garbageValue = "558028939"
)
@Export("newTask")
final Task newTask(int var1, int var2, int var3, Object var4) {
Task var5 = new Task();
var5.type = var1;
var5.intArgument = var2;
var5.objectArgument = var4;
synchronized(this) {
if (this.task0 != null) {
this.task0.next = var5;
this.task0 = var5;
} else {
this.task0 = this.current = var5;
}
this.notify();
return var5;
}
}
@ObfuscatedName("q")
@ObfuscatedSignature(
signature = "(Ljava/lang/String;II)Lfm;",
garbageValue = "-1376691915"
)
@Export("newSocketTask")
public final Task newSocketTask(String var1, int var2) {
return this.newTask(1, var2, 0, var1);
}
@ObfuscatedName("w")
@ObfuscatedSignature(
signature = "(Ljava/lang/Runnable;II)Lfm;",
garbageValue = "-909980487"
)
@Export("newThreadTask")
public final Task newThreadTask(Runnable var1, int var2) {
return this.newTask(2, var2, 0, var1);
}
@Export("run")
@ObfuscatedName("run")
public final void run() {
while (true) {
Task var1;
synchronized(this) {
while (true) {
if (this.isClosed) {
return;
}
if (this.current != null) {
var1 = this.current;
this.current = this.current.next;
if (this.current == null) {
this.task0 = null;
}
break;
}
try {
this.wait();
} catch (InterruptedException var7) {
}
}
}
try {
int var2 = var1.type;
if (var2 == 1) {
var1.result = new Socket(InetAddress.getByName((String)var1.objectArgument), var1.intArgument);
} else if (var2 == 2) {
Thread var3 = new Thread((Runnable)var1.objectArgument);
var3.setDaemon(true);
var3.start();
var3.setPriority(var1.intArgument);
var1.result = var3;
} else if (var2 == 4) {
var1.result = new DataInputStream(((URL)var1.objectArgument).openStream());
}
var1.status = 1;
} catch (ThreadDeath var5) {
throw var5;
} catch (Throwable var6) {
var1.status = 2;
}
}
}
}