Rename utils w/ [WIP] NSC
This commit is contained in:
54
sources/src/main/java/io/akarin/api/Akari.java
Normal file
54
sources/src/main/java/io/akarin/api/Akari.java
Normal file
@@ -0,0 +1,54 @@
|
||||
package io.akarin.api;
|
||||
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.Queue;
|
||||
import java.util.concurrent.ThreadFactory;
|
||||
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
|
||||
import com.google.common.collect.Queues;
|
||||
import com.google.common.util.concurrent.ThreadFactoryBuilder;
|
||||
|
||||
import co.aikar.timings.Timing;
|
||||
import co.aikar.timings.Timings;
|
||||
|
||||
public abstract class Akari {
|
||||
/**
|
||||
* A common logger used by mixin classes
|
||||
*/
|
||||
public final static Logger logger = LogManager.getLogger("Akarin");
|
||||
|
||||
/**
|
||||
* Temporarily disable desync timings error, moreover it's worthless to trace async operation
|
||||
*/
|
||||
public static volatile boolean silentTiming;
|
||||
|
||||
/**
|
||||
* A common thread pool factory
|
||||
*/
|
||||
public static final ThreadFactory STAGE_FACTORY = new ThreadFactoryBuilder().setNameFormat("Akarin Schedule Thread - %1$d").build();
|
||||
|
||||
/**
|
||||
* Main thread callback tasks
|
||||
*/
|
||||
public static final Queue<Runnable> callbackQueue = Queues.newConcurrentLinkedQueue();
|
||||
|
||||
/*
|
||||
* Timings
|
||||
*/
|
||||
private static Timing callbackTiming;
|
||||
|
||||
public static Timing callbackTiming() {
|
||||
if (callbackTiming == null) {
|
||||
try {
|
||||
Method ofSafe = Timings.class.getDeclaredMethod("ofSafe", String.class);
|
||||
ofSafe.setAccessible(true);
|
||||
callbackTiming = (Timing) ofSafe.invoke(null, "Akarin - Callback");
|
||||
} catch (Throwable t) {
|
||||
t.printStackTrace();
|
||||
}
|
||||
}
|
||||
return callbackTiming;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user