module mutils.job_manager.execution_manager; import mutils.container.vector; import mutils.container_shared.shared_vector; alias Delegate = void delegate(); class ExecutionManager { LockedVector!Delegate delegatesToExecute; void initialize() { delegatesToExecute = new LockedVector!Delegate(); } void add(Delegate del) { delegatesToExecute.add(del); } void update() { Vector!Delegate delegates = delegatesToExecute.vectorCopyWithReset(); //if(delegates is null)return; foreach (del; delegates) { del(); } } }