Amend LibAC's delayed execution service to have a internal start and stop API
This commit is contained in:
parent
bbafb83966
commit
2e734773a0
2 changed files with 30 additions and 4 deletions
|
@ -12,9 +12,9 @@ plugins {
|
||||||
id 'maven-publish'
|
id 'maven-publish'
|
||||||
}
|
}
|
||||||
|
|
||||||
version = "1.0.1"
|
version = "1.1.0"
|
||||||
group = "dev.zontreck"
|
group = "dev.zontreck"
|
||||||
archivesBaseName = "libac"
|
archivesBaseName = "LibAC"
|
||||||
|
|
||||||
repositories {
|
repositories {
|
||||||
// Use Maven Central for resolving dependencies.
|
// Use Maven Central for resolving dependencies.
|
||||||
|
|
|
@ -4,11 +4,14 @@ import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Timer;
|
import java.util.Timer;
|
||||||
import java.util.TimerTask;
|
import java.util.TimerTask;
|
||||||
|
import java.util.concurrent.atomic.AtomicBoolean;
|
||||||
|
|
||||||
import dev.zontreck.ariaslib.terminal.Terminal;
|
import dev.zontreck.ariaslib.terminal.Terminal;
|
||||||
|
|
||||||
|
|
||||||
public class DelayedExecutorService {
|
public class DelayedExecutorService {
|
||||||
|
|
||||||
|
private static final AtomicBoolean RUN = new AtomicBoolean(true);
|
||||||
private static int COUNT = 0;
|
private static int COUNT = 0;
|
||||||
private static final DelayedExecutorService inst;
|
private static final DelayedExecutorService inst;
|
||||||
private static final Timer repeater;
|
private static final Timer repeater;
|
||||||
|
@ -26,6 +29,24 @@ public class DelayedExecutorService {
|
||||||
}
|
}
|
||||||
private DelayedExecutorService(){}
|
private DelayedExecutorService(){}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Stops accepting new tasks, and current ones will abort
|
||||||
|
*/
|
||||||
|
public static void stop()
|
||||||
|
{
|
||||||
|
RUN.set(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Resume accepting new tasks.
|
||||||
|
*
|
||||||
|
* NOTE: The task system is set to run by default. This call is only needed if DelayedExecutorService#stop was used previously
|
||||||
|
*/
|
||||||
|
public static void start()
|
||||||
|
{
|
||||||
|
RUN.set(true);
|
||||||
|
}
|
||||||
|
|
||||||
public static DelayedExecutorService getInstance()
|
public static DelayedExecutorService getInstance()
|
||||||
{
|
{
|
||||||
return inst;
|
return inst;
|
||||||
|
@ -60,9 +81,14 @@ public class DelayedExecutorService {
|
||||||
//EXECUTORS.add(exe);
|
//EXECUTORS.add(exe);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static boolean isRunning()
|
||||||
|
{
|
||||||
|
return RUN.get();
|
||||||
|
}
|
||||||
|
|
||||||
public void scheduleRepeating(final Runnable run, int seconds)
|
public void scheduleRepeating(final Runnable run, int seconds)
|
||||||
{
|
{
|
||||||
if(!Terminal.isRunning()) return;
|
if(!isRunning()) return;
|
||||||
|
|
||||||
TimerTask task = new TimerTask() {
|
TimerTask task = new TimerTask() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -82,7 +108,7 @@ public class DelayedExecutorService {
|
||||||
|
|
||||||
public void onTick()
|
public void onTick()
|
||||||
{
|
{
|
||||||
if(!Terminal.isRunning())
|
if(!isRunning())
|
||||||
{
|
{
|
||||||
DelayedExecutorService.stopRepeatingThread();
|
DelayedExecutorService.stopRepeatingThread();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue