mirror of
https://github.com/filoghost/HolographicDisplays.git
synced 2024-11-24 19:35:12 +01:00
Remove duplicate thread initialization
This commit is contained in:
parent
0754e0ac33
commit
9dcf6035fe
@ -13,37 +13,21 @@ import java.util.concurrent.LinkedBlockingQueue;
|
|||||||
/**
|
/**
|
||||||
* This is a quick but ugly helper class for creating and sending packets async.
|
* This is a quick but ugly helper class for creating and sending packets async.
|
||||||
* Static classes like this should be avoided.
|
* Static classes like this should be avoided.
|
||||||
|
* Important note: this executor can only have one thread, as packets must be sent in a precise order.
|
||||||
*/
|
*/
|
||||||
public class PacketSenderExecutor {
|
public class PacketSenderExecutor {
|
||||||
|
|
||||||
private static volatile BlockingQueue<Runnable> tasks;
|
private static volatile BlockingQueue<Runnable> tasks;
|
||||||
private static volatile Thread thread;
|
|
||||||
|
|
||||||
private static final Runnable STOP_MARKER_TASK = () -> {};
|
private static final Runnable STOP_MARKER_TASK = () -> {};
|
||||||
|
|
||||||
static {
|
|
||||||
tasks = new LinkedBlockingQueue<>();
|
|
||||||
thread = new Thread(() -> {
|
|
||||||
while (true) {
|
|
||||||
try {
|
|
||||||
Runnable task = tasks.take();
|
|
||||||
task.run();
|
|
||||||
} catch (Throwable t) {
|
|
||||||
Log.severe("Error in packet sender task", t);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
thread.setName("Holographic Displays async packets");
|
|
||||||
thread.start();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void execute(Runnable task) {
|
public static void execute(Runnable task) {
|
||||||
tasks.add(task);
|
tasks.add(task);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void start() {
|
public static void start() {
|
||||||
tasks = new LinkedBlockingQueue<>();
|
tasks = new LinkedBlockingQueue<>();
|
||||||
thread = new Thread(() -> {
|
Thread thread = new Thread(() -> {
|
||||||
while (true) {
|
while (true) {
|
||||||
try {
|
try {
|
||||||
Runnable task = tasks.take();
|
Runnable task = tasks.take();
|
||||||
@ -56,7 +40,7 @@ public class PacketSenderExecutor {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
thread.setName("Holographic Displays packet sender");
|
thread.setName("Holographic Displays async packets");
|
||||||
thread.start();
|
thread.start();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user