diff --git a/src/mainloop/manager/MainloopManager.java b/src/mainloop/manager/MainloopManager.java index 7a92c56..121ec90 100755 --- a/src/mainloop/manager/MainloopManager.java +++ b/src/mainloop/manager/MainloopManager.java @@ -12,6 +12,7 @@ import mainloop.time.MainloopTimer; public class MainloopManager { protected ArrayList tasks; + protected ArrayList tasks_to_add = new ArrayList(); protected IMainloopEvent handler; protected boolean running = false; protected MainloopTimer timer; @@ -54,6 +55,18 @@ public class MainloopManager public void update() { + // Does the tasks to add array have content in it + if(tasks_to_add.size() > 0) + { + // Add all the tasks to add + for(MainloopTask task : tasks_to_add) { + tasks.add(task); + } + + // Clear the tasks to add array + tasks_to_add.clear(); + } + // Loop over the tasks for(Iterator i=tasks.iterator();i.hasNext();) { @@ -73,7 +86,7 @@ public class MainloopManager } public void register(IMainloopTask task) { - tasks.add(new MainloopTask(task)); + tasks_to_add.add(new MainloopTask(task)); } }