Browse Source

added name to scheduler tasks

Kajetan Johannes Hammerle 2 years ago
parent
commit
b5801921d8

+ 1 - 1
src/me/hammerle/snuviscript/ConsoleScheduler.java

@@ -36,7 +36,7 @@ public class ConsoleScheduler implements ISnuviScheduler {
     private final ArrayList<Task> tasks = new ArrayList<>();
 
     @Override
-    public void scheduleTask(Runnable r, long delay) {
+    public void scheduleTask(String name, Runnable r, long delay) {
         activeTasks++;
         for(int i = 0; i < tasks.size(); i++) {
             Task t = tasks.get(i);

+ 8 - 6
src/me/hammerle/snuviscript/code/FunctionRegistry.java

@@ -59,11 +59,13 @@ public class FunctionRegistry {
     }
 
     private static class ScheduledGoto implements Runnable {
+        private String name;
         private Script sc;
         private String label;
         private int line;
 
-        public ScheduledGoto(Script sc, String label, int line) {
+        public ScheduledGoto(String name, Script sc, String label, int line) {
+            this.name = name;
             this.sc = sc;
             this.label = label;
             this.line = line;
@@ -74,8 +76,8 @@ public class FunctionRegistry {
             if(sc.shouldTerm()) {
                 return;
             } else if(sc.isHolded()) {
-                sc.getScriptManager().getScheduler()
-                        .scheduleTask(new ScheduledGoto(sc, label, line), 2);
+                sc.getScriptManager().getScheduler().scheduleTask(name,
+                        new ScheduledGoto(name, sc, label, line), 2);
                 return;
             }
             try {
@@ -523,8 +525,8 @@ public class FunctionRegistry {
             }
             String label = in[1].getString(sc);
             int line = sc.getLine();
-            sc.getScriptManager().getScheduler().scheduleTask(new ScheduledGoto(sc, label, line),
-                    time);
+            sc.getScriptManager().getScheduler().scheduleTask("sgoto",
+                    new ScheduledGoto("sgoto", sc, label, line), time);
         });
         registerConsumer("gosub", (sc, in) -> sc.goSub(in[0].getString(sc)));
         registerFunction("==", (sc, in) -> Objects.equals(in[0].get(sc), in[1].get(sc)));
@@ -590,7 +592,7 @@ public class FunctionRegistry {
             }
             sc.setHolded(true);
             sc.setWaiting();
-            sc.getScriptManager().getScheduler().scheduleTask(() -> {
+            sc.getScriptManager().getScheduler().scheduleTask("waitfor", () -> {
                 if(sc.shouldTerm()) {
                     return;
                 }

+ 3 - 3
src/me/hammerle/snuviscript/code/ISnuviScheduler.java

@@ -1,9 +1,9 @@
 package me.hammerle.snuviscript.code;
 
 public interface ISnuviScheduler {
-    public default void scheduleTask(Runnable r) {
-        scheduleTask(r, 0);
+    public default void scheduleTask(String name, Runnable r) {
+        scheduleTask(name, r, 0);
     }
 
-    public void scheduleTask(Runnable r, long delay);
+    public void scheduleTask(String name, Runnable r, long delay);
 }

+ 1 - 1
src/me/hammerle/snuviscript/code/Script.java

@@ -139,7 +139,7 @@ public final class Script {
 
             if(System.nanoTime() > endTime) {
                 isHolded = true;
-                scriptManager.getScheduler().scheduleTask(() -> {
+                scriptManager.getScheduler().scheduleTask("auto", () -> {
                     if(!shouldTerm()) {
                         isHolded = false;
                         run();

+ 1 - 1
src/me/hammerle/snuviscript/config/SnuviConfig.java

@@ -35,7 +35,7 @@ public class SnuviConfig {
         }
         ScriptManager sm = sc.getScriptManager();
         final StackTrace trace = sc.getStackTrace();
-        sm.getScheduler().scheduleTask(() -> {
+        sm.getScheduler().scheduleTask("config_print", () -> {
             sm.getLogger().print(message, ex, null, sc.getName(), sc, trace);
         });
     }

+ 1 - 1
src/me/hammerle/snuviscript/test/TestScheduler.java

@@ -7,7 +7,7 @@ public class TestScheduler implements ISnuviScheduler {
     private final LinkedList<Runnable> list = new LinkedList<>();
 
     @Override
-    public void scheduleTask(Runnable r, long delay) {
+    public void scheduleTask(String name, Runnable r, long delay) {
         list.add(r);
     }